function getFriendList($uid) {
$str_url = DEF_INTERFACE_FRIEND_LIST . '?cuid=' . $uid . '&uid=' . $uid . '&pagesize=1000' . '&info=0';
$ch_curl = curl_init ();
curl_setopt ( $ch_curl, CURLOPT_TIMEOUT, 3 );
curl_setopt ( $ch_curl, CURLOPT_HEADER, false );
curl_setopt ( $ch_curl, CURLOPT_HTTPGET, 1 );
curl_setopt ( $ch_curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt ( $ch_curl, CURLOPT_URL, $str_url );
$str_return = curl_exec ( $ch_curl );
if ($str_return === false)
return false;
curl_close ( $ch_curl );
$arr_return = json_decode ( $str_return, true );
return $arr_return;
}
curl_setopt函数相关参数介绍
阅读全文
$str_url = DEF_INTERFACE_FRIEND_LIST . '?cuid=' . $uid . '&uid=' . $uid . '&pagesize=1000' . '&info=0';
$ch_curl = curl_init ();
curl_setopt ( $ch_curl, CURLOPT_TIMEOUT, 3 );
curl_setopt ( $ch_curl, CURLOPT_HEADER, false );
curl_setopt ( $ch_curl, CURLOPT_HTTPGET, 1 );
curl_setopt ( $ch_curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt ( $ch_curl, CURLOPT_URL, $str_url );
$str_return = curl_exec ( $ch_curl );
if ($str_return === false)
return false;
curl_close ( $ch_curl );
$arr_return = json_decode ( $str_return, true );
return $arr_return;
}
curl_setopt函数相关参数介绍

你还可以参考:http://www.ibm.com/developerworks/cn/opensource/os-php-smarty/
smarty函数库
什么是smarty及其安装
Smarty是一个php模板引擎,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法.
Smarty要求web服务器运行php4.0.6和以上版本.
smarty安装需要smarty库文件。可以去官方网站[url]http://smarty.php.net[/url]下载。我下的是2.6.7版本的。
网上讲了很多安装的教程,但是我都没有成功,所以直接把整个目录名改为smarty直接复制到了网站所在的目录下,然后打开
http://网站路径/smarty/demo/index.php,显示正常,应该算是安装成功了。
基本语法
所有的smarty标签都被加上了定界符.在smarty里,所有定界符以外的内容都是静态的,当smarty遇到了模板标签,将尝试解释他们,然后再以恰当的方式输出.
阅读全文
smarty函数库
什么是smarty及其安装
Smarty是一个php模板引擎,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法.
Smarty要求web服务器运行php4.0.6和以上版本.
smarty安装需要smarty库文件。可以去官方网站[url]http://smarty.php.net[/url]下载。我下的是2.6.7版本的。
网上讲了很多安装的教程,但是我都没有成功,所以直接把整个目录名改为smarty直接复制到了网站所在的目录下,然后打开
http://网站路径/smarty/demo/index.php,显示正常,应该算是安装成功了。
基本语法
所有的smarty标签都被加上了定界符.在smarty里,所有定界符以外的内容都是静态的,当smarty遇到了模板标签,将尝试解释他们,然后再以恰当的方式输出.

2007-08-09 10:06 刚找到LITERAL的一点东西跟大家分享一下:
Literal 标签区域内的数据将被当作文本处理,此时模板将忽略其内部的所有字符信息. 该特性用于显示有可能包含大括号等字符信息的 javascript 脚本. 当这些信息处于 {literal}{/literal} 标签中时,模板引擎将不分析它们,而直接显示.
例子:
php
php tags allow php to be embedded directly into the template. They will not be escaped, regardless of the $php_handling setting. This is for advanced users only, not normally needed.
php 标签允许在模板中直接嵌入 php 脚本. 是否处理这些语句取决于$php_handling的设置. 该语句通常不需要使用,当然如果你非常了解此特性或认为必须要用,也可以使用.
php 标签演示
这和定义的解散解析标签也有管,如:<{ }> ,得这样:
<p class="m30">
{if $$mytest[loop].ts|@count != 0}
参与过的好友:
{foreach from=$mytest[loop].ts item=ts}
<a href="?action=friendtest&uid={$ts.0}">{$ts.1}</a>
{/foreach}
{/if}
</p>
<p>
{if $mytest[loop].ta|@count != 0}
和我结果一样的好友:{foreach item=ta from=$mytest[loop].ta}
<a href="?action=friendtest&uid={$ta.0}">{$ta.1}</a>
{/foreach}
{/if}
</p>
{if $$mytest[loop].ts|@count != 0}
参与过的好友:
{foreach from=$mytest[loop].ts item=ts}
<a href="?action=friendtest&uid={$ts.0}">{$ts.1}</a>
{/foreach}
{/if}
</p>
<p>
{if $mytest[loop].ta|@count != 0}
和我结果一样的好友:{foreach item=ta from=$mytest[loop].ta}
<a href="?action=friendtest&uid={$ta.0}">{$ta.1}</a>
{/foreach}
{/if}
</p>
背景:有时在上线时出现只需要导出线下包含某个部分的数据,和线上对接上即可,这儿可以用awk实现,当然是用mysqldump直接来实现来得快,但是要是真没有办法还得用脚本来实现,参看:http://jackxiang.com/post/2364/
一)mysqldump 可以导出where条件的sql出来,再source进去(-d -t是有区别的:-d:只是data建表结构,-t:table数据):
mysqldump -d newbbs > newbbs_table_structure_export_2018_06_14.sql #只导出结构样例实践
实践情况如下:
Q1:
Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events.
Q2:
mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_QUOTE_SHOW_CREATE=1' at line 1 (1064)
——————
下面解决方法来源于网络,针对我的版本是mysql5.6,问题解决:
最后找到解决办法、用新安装的mysql绝对路径来实现备份。
参考:http://blog.sina.com.cn/s/blog_692778030101mycz.html
二)selected into可以有格式也有部分字段导出像:"",""...这样的,再通过load data infile 导入。
导出部分且有条件的SQL:
阅读全文
一)mysqldump 可以导出where条件的sql出来,再source进去(-d -t是有区别的:-d:只是data建表结构,-t:table数据):
mysqldump -d newbbs > newbbs_table_structure_export_2018_06_14.sql #只导出结构样例实践
实践情况如下:
Q1:
Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events.
Q2:
mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_QUOTE_SHOW_CREATE=1' at line 1 (1064)
——————
下面解决方法来源于网络,针对我的版本是mysql5.6,问题解决:
最后找到解决办法、用新安装的mysql绝对路径来实现备份。
参考:http://blog.sina.com.cn/s/blog_692778030101mycz.html
二)selected into可以有格式也有部分字段导出像:"",""...这样的,再通过load data infile 导入。
导出部分且有条件的SQL:

php 通过error_reporting(0);关闭错误提示!
error_reporting(E_ALL); //显示所有的错误讯息
error_reporting(E_ALL&~E_NOTICE) 这是什么意思,表示提示除去 E_NOTICE 之外的所有错误信息
error_reporting(0);//关闭全部!
你把php.ini中error_reporting这个参数设置为error_reporting=E_ERROR
只样就只会报告致命性错误了。
error_reporting可以设置的参数如下:
; 错误报告是位字段。可以将数字加起来得到想要的错误报告等级。
; E_ALL - 所有的错误和警告(不包括 E_STRICT)
; E_ERROR - 致命性的运行时错误
; E_WARNING - 运行时警告(非致命性错误)
; E_PARSE - 编译时解析错误
; E_NOTICE - 运行时提醒(这些经常是你代码中的bug引起的,也可能是有意的行为造成的。)
; E_STRICT - 编码标准化警告,允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。
; E_CORE_ERROR - PHP启动时初始化过程中的致命错误
; E_CORE_WARNING - PHP启动时初始化过程中的警告(非致命性错)
; E_COMPILE_ERROR - 编译时致命性错
; E_COMPILE_WARNING - 编译时警告(非致命性错)
; E_USER_ERROR - 用户自定义的错误消息
; E_USER_WARNING - 用户自定义的警告消息
; E_USER_NOTICE - 用户自定义的提醒消息
; 例子:
;error_reporting = E_ALL & ~E_NOTICE ; 显示所有的错误,除了提醒
;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR ; 仅显示错误
---------------------------------------------------------------------------------------------------------------------
使用error_reporting(0);关闭错误成功或失败的例子:
关闭php提示错误功能
在php.ini 中把display_errors改成
display_errors = OFF
或在php文件前加入
error_reporting(0)
1)使用error_reporting(0);失败的例子:
A文件代码:
<?
error_reporting(0);
echo 555
echo 444;
?>
错误:
Parse error: parse error, expecting `','' or `';'' in E:\webphp\2.php on line 4
2)使用error_reporting(0);成功的例子:
a文件代码:
<?php
error_reporting(0);
include("b.php");
?>
b文件代码:
<?php
echo 555
echo 444;
?>
这是很多phper说用error_reporting(0)不起作用。第一个例子A.php里面有致命错误,导致不能执行,不能执行服务器则不知有这个功能,所以一样报错。
第二个例子中a.php成功执行,那么服务器知道有抑制错误功能,所以就算b.php有错误也抑制了。
ps:抑制不了mysql错误。
From:http://blog.csdn.net/heiyeshuwu/article/details/8024567
error_reporting(E_ALL); //显示所有的错误讯息
error_reporting(E_ALL&~E_NOTICE) 这是什么意思,表示提示除去 E_NOTICE 之外的所有错误信息
error_reporting(0);//关闭全部!
你把php.ini中error_reporting这个参数设置为error_reporting=E_ERROR
只样就只会报告致命性错误了。
error_reporting可以设置的参数如下:
; 错误报告是位字段。可以将数字加起来得到想要的错误报告等级。
; E_ALL - 所有的错误和警告(不包括 E_STRICT)
; E_ERROR - 致命性的运行时错误
; E_WARNING - 运行时警告(非致命性错误)
; E_PARSE - 编译时解析错误
; E_NOTICE - 运行时提醒(这些经常是你代码中的bug引起的,也可能是有意的行为造成的。)
; E_STRICT - 编码标准化警告,允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。
; E_CORE_ERROR - PHP启动时初始化过程中的致命错误
; E_CORE_WARNING - PHP启动时初始化过程中的警告(非致命性错)
; E_COMPILE_ERROR - 编译时致命性错
; E_COMPILE_WARNING - 编译时警告(非致命性错)
; E_USER_ERROR - 用户自定义的错误消息
; E_USER_WARNING - 用户自定义的警告消息
; E_USER_NOTICE - 用户自定义的提醒消息
; 例子:
;error_reporting = E_ALL & ~E_NOTICE ; 显示所有的错误,除了提醒
;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR ; 仅显示错误
---------------------------------------------------------------------------------------------------------------------
使用error_reporting(0);关闭错误成功或失败的例子:
关闭php提示错误功能
在php.ini 中把display_errors改成
display_errors = OFF
或在php文件前加入
error_reporting(0)
1)使用error_reporting(0);失败的例子:
A文件代码:
<?
error_reporting(0);
echo 555
echo 444;
?>
错误:
Parse error: parse error, expecting `','' or `';'' in E:\webphp\2.php on line 4
2)使用error_reporting(0);成功的例子:
a文件代码:
<?php
error_reporting(0);
include("b.php");
?>
b文件代码:
<?php
echo 555
echo 444;
?>
这是很多phper说用error_reporting(0)不起作用。第一个例子A.php里面有致命错误,导致不能执行,不能执行服务器则不知有这个功能,所以一样报错。
第二个例子中a.php成功执行,那么服务器知道有抑制错误功能,所以就算b.php有错误也抑制了。
ps:抑制不了mysql错误。
From:http://blog.csdn.net/heiyeshuwu/article/details/8024567
在写Php上传时,nginx上传模块nginx_upload_module时把文件移到自己想要的目录会用到:http://jackxiang.com/post/6221/
但后来根本不用这个,
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2013-04-09:
Rango-韩天峰(3507499**) 17:40:30
现在PHP5.3提供了__DIR__常量了,以前还要写 dirname(__FILE__)
回忆未来-向东-Jàck(3726476**) 17:42:11
我是想获取一个变量里的dir,rango说的能使。?
Rango-韩天峰(3507499**) 17:42:22
能啊
这个只是字符串分析的函数,不会去读文件系统
我们知道PHP中提供了一个魔术常量(magic constant)__FILE__,用来指向当前执行的PHP脚本。但PHP没有直接提供该脚本所在目录的常量。也就是说如果我们要得到当前PHP脚本所在的目录,需要使用dirname()这个函数:
<?php
$dir = dirname(__FILE__);
?>
在PHP5.3中,增加了一个新的常量__DIR__,指向当前执行的PHP脚本所在的目录。
例如当前执行的PHP文件为 /www/website/index.php
则__FILE__等于'/www/website/index.php'
而__DIR__等于'/www/website'
现在我们要包含当前文件目录或子目录下的文件,可以直接使用:
<?php
require_once __DIR__ . '/path/to/test.inc.php';
?>
http://www.phpeye.com/article/view/id/149/
例子 1
<?php
print_r(pathinfo("/testweb/test.txt"));
?>
输出:
Array
(
[dirname] => /testweb
[basename] => test.txt
[extension] => txt
)
例子 2
<?php
print_r(pathinfo("/testweb/test.txt",PATHINFO_BASENAME));
?>
输出:
test.txt
在实际的运用中是这样的:
调试PHP输出:
Array
(
[dirname] => /upload/video/user
[basename] => .20130410223139569564.JPG
[extension] => JPG
[filename] => .20130410223139569564
)
jpg
输出完成 (耗时 0 秒) - 正常终止
———————————————————————————————————————————————————
再次使用的方法备案(找到以xx.php.mine结果的文件并且删除掉: rm -Rf /xxx/xx.*)Add By:2014-01-03:
<?php
for($i=1;$i<=5;$i++)
{
$array_test_all = array("0"=>"test_array","1"=>"test_all");
$arr_test[] = $array_test_all;
}
print_r($arr_test);
echo "________________________________________________________\n";
foreach($arr_test as $key=> $values)
{
$arr_test[$key]['ts'][]="111";
}
print_r($arr_test);
?>
Array
(
[0] => Array
(
[0] => test_array
[1] => test_all
)
[1] => Array
(
[0] => test_array
[1] => test_all
)
[2] => Array
(
[0] => test_array
[1] => test_all
)
[3] => Array
(
[0] => test_array
[1] => test_all
)
[4] => Array
(
[0] => test_array
[1] => test_all
)
)
________________________________________________________
Array
(
[0] => Array
(
[0] => test_array
[1] => test_all
[ts] => Array
(
[0] => 111
)
)
[1] => Array
(
[0] => test_array
[1] => test_all
[ts] => Array
(
[0] => 111
)
)
[2] => Array
(
[0] => test_array
[1] => test_all
[ts] => Array
(
[0] => 111
)
)
[3] => Array
(
[0] => test_array
[1] => test_all
[ts] => Array
(
[0] => 111
)
)
[4] => Array
(
[0] => test_array
[1] => test_all
[ts] => Array
(
[0] => 111
)
)
)
for($i=1;$i<=5;$i++)
{
$array_test_all = array("0"=>"test_array","1"=>"test_all");
$arr_test[] = $array_test_all;
}
print_r($arr_test);
echo "________________________________________________________\n";
foreach($arr_test as $key=> $values)
{
$arr_test[$key]['ts'][]="111";
}
print_r($arr_test);
?>
Array
(
[0] => Array
(
[0] => test_array
[1] => test_all
)
[1] => Array
(
[0] => test_array
[1] => test_all
)
[2] => Array
(
[0] => test_array
[1] => test_all
)
[3] => Array
(
[0] => test_array
[1] => test_all
)
[4] => Array
(
[0] => test_array
[1] => test_all
)
)
________________________________________________________
Array
(
[0] => Array
(
[0] => test_array
[1] => test_all
[ts] => Array
(
[0] => 111
)
)
[1] => Array
(
[0] => test_array
[1] => test_all
[ts] => Array
(
[0] => 111
)
)
[2] => Array
(
[0] => test_array
[1] => test_all
[ts] => Array
(
[0] => 111
)
)
[3] => Array
(
[0] => test_array
[1] => test_all
[ts] => Array
(
[0] => 111
)
)
[4] => Array
(
[0] => test_array
[1] => test_all
[ts] => Array
(
[0] => 111
)
)
)
$uid='1';
$my_test=new TestResult($uid,1,$page,$testlist,10,"SLAVE");
if(!$my_test)
{
echo "数据库连接有问题!";
}
print_r($testlist);
foreach ($testlist as $values)
{
$ts_id[]=$values['ts_id'];
}
$ts_id_list = implode(",", $ts_id);//用,好连起来
$obj_friend_test = new friend_test();
$arr_friend_list = $obj_friend_test ->getFriendList($uid , $ts_id_list);
foreach ($testlist as $key=> $values)
{
$str_ts_id=$values['ts_id'];
$arr_ts_one = $arr_friend_list['ts'][$str_ts_id];
$All[$key][]=$values;
$All[$key][]=$arr_ts_one;
$str_ta_key=$values['ts_id']."-".$values['ta_id'];
$arr_ta_one = $arr_friend_list['ta'][$str_ta_key];
$All[$key][]=$arr_ta_one;
}
$my_test=new TestResult($uid,1,$page,$testlist,10,"SLAVE");
if(!$my_test)
{
echo "数据库连接有问题!";
}
print_r($testlist);
foreach ($testlist as $values)
{
$ts_id[]=$values['ts_id'];
}
$ts_id_list = implode(",", $ts_id);//用,好连起来
$obj_friend_test = new friend_test();
$arr_friend_list = $obj_friend_test ->getFriendList($uid , $ts_id_list);
foreach ($testlist as $key=> $values)
{
$str_ts_id=$values['ts_id'];
$arr_ts_one = $arr_friend_list['ts'][$str_ts_id];
$All[$key][]=$values;
$All[$key][]=$arr_ts_one;
$str_ta_key=$values['ts_id']."-".$values['ta_id'];
$arr_ta_one = $arr_friend_list['ta'][$str_ta_key];
$All[$key][]=$arr_ta_one;
}
在前台页面里面,从数据库中选择出来的数据表中文项目,有的是正确的编码显示,有的是错误的乱码,分析后知道,原因可能有3种:
1. mysql_server 的语言环境应该为zh_CN.GBK ,同时数据库的环境变量中要把各个数据库中的字符集设定为utf8;
2. 页面前台输出需要转码
3. 运行客户端的时候,没有设定utf8编码就把数据库表建立,使得数据库表中本身插入的就是乱码
我遇到的起初认为是1;最后发现是3
错误的原因:
正确的解决方法:
解决utf8字符集的问题
mysql -h127.0.0.1 -P3336 -uroot < initTables.sql
mysql -h127.0.0.1 -P3336 -uroot < initMacro.sql
mysql -h127.0.0.1 -P3336 -uroot < initUsers.sql
mysql -h127.0.0.1 -P3336 -uroot < initRoles.sql
mysql -h127.0.0.1 -P3336 -uroot
这样插入的表,本身就是乱码,显示到前台,当然也是乱码了
解决utf8字符集的问题
[aimm@aixuning MySQL]$ mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot < initTables.sql
[aimm@aixuning MySQL]$ mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot < initMacro.sql
[aimm@aixuning MySQL]$ mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot < initUsers.sql
[aimm@aixuning MySQL]$ mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot < initRoles.sql
[aimm@aixuning MySQL]$ mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot
首先应该在建表的时候指定该表是utf-8结构的,然后再进行设置char类型的。
当然你设定为binary的数据格式,不设置utf-8表结构也可以,但是在firefox会出现???你得用php的trim("")去掉???!!mysql5.X
1. mysql_server 的语言环境应该为zh_CN.GBK ,同时数据库的环境变量中要把各个数据库中的字符集设定为utf8;
2. 页面前台输出需要转码
3. 运行客户端的时候,没有设定utf8编码就把数据库表建立,使得数据库表中本身插入的就是乱码
我遇到的起初认为是1;最后发现是3
错误的原因:
正确的解决方法:
解决utf8字符集的问题
mysql -h127.0.0.1 -P3336 -uroot < initTables.sql
mysql -h127.0.0.1 -P3336 -uroot < initMacro.sql
mysql -h127.0.0.1 -P3336 -uroot < initUsers.sql
mysql -h127.0.0.1 -P3336 -uroot < initRoles.sql
mysql -h127.0.0.1 -P3336 -uroot
这样插入的表,本身就是乱码,显示到前台,当然也是乱码了
解决utf8字符集的问题
[aimm@aixuning MySQL]$ mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot < initTables.sql
[aimm@aixuning MySQL]$ mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot < initMacro.sql
[aimm@aixuning MySQL]$ mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot < initUsers.sql
[aimm@aixuning MySQL]$ mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot < initRoles.sql
[aimm@aixuning MySQL]$ mysql --default-character-set=utf8 -h127.0.0.1 -P3336 -uroot
首先应该在建表的时候指定该表是utf-8结构的,然后再进行设置char类型的。
当然你设定为binary的数据格式,不设置utf-8表结构也可以,但是在firefox会出现???你得用php的trim("")去掉???!!mysql5.X
新的空间没有phpMyAdmin,只好自己装一个。上传后不会配置,在网上搜索了一下方法,可是按照别人说的去配置后就会出现"#1045 - Access denied for user 'root'@'localhost' (using password: NO)"这样的情况,自己摸索一阵,于是发现正确进入phpMyAdmin的修改很简单:只需修改$cfg['blowfish_secret'] = '';
配置方法:
1、下载phpMyAdmin后,解压,把里面的config.sample.inc.php文件重命名为config.inc.php
2、修改config.inc.php:找到$cfg['blowfish_secret'] = '';在''间填入任意数字和字母就ok了,其他的什么也不用改。因为里面的注释已经说的很清楚了“这是需要cookie的认证加密密码,你必须填补这个cookie的认证!”
我是直接修改libraries目录下的config.default.php(我是在这儿配置数据库链接信息的):
libraries目录下修改: vi config.default.php,找到$cfg['blowfish_secret'] = '';在''间填入任意数字和字母就ok了!
配置方法:
1、下载phpMyAdmin后,解压,把里面的config.sample.inc.php文件重命名为config.inc.php
2、修改config.inc.php:找到$cfg['blowfish_secret'] = '';在''间填入任意数字和字母就ok了,其他的什么也不用改。因为里面的注释已经说的很清楚了“这是需要cookie的认证加密密码,你必须填补这个cookie的认证!”
我是直接修改libraries目录下的config.default.php(我是在这儿配置数据库链接信息的):
libraries目录下修改: vi config.default.php,找到$cfg['blowfish_secret'] = '';在''间填入任意数字和字母就ok了!
function getUicIcon($uid,&$uicicon,$size='180')
{
$tmpid = $uid%8 + 1;
$uicicon = "http://portrait".$tmpid.".sinaimg.cn/".$uid."/space/".$size;
return 1;
}
getUicIcon(1261163301,$uicicon,180);
echo $uicicon."
";
getUicIcon(1290170007,$uicicon,180);
echo $uicicon;
?>
{
$tmpid = $uid%8 + 1;
$uicicon = "http://portrait".$tmpid.".sinaimg.cn/".$uid."/space/".$size;
return 1;
}
getUicIcon(1261163301,$uicicon,180);
echo $uicicon."
";
getUicIcon(1290170007,$uicicon,180);
echo $uicicon;
?>
关于Notice: Undefined variable 的问题解决方法
0
修改
global.php
找到
//error_reporting(0);
修改为:
error_reporting(0);
在每个php头行加入也行。。。
0
修改
global.php
找到
//error_reporting(0);
修改为:
error_reporting(0);
在每个php头行加入也行。。。
如果有端口:
$dsn="mysql:host=".$this->db_host.";port=".$this->db_port.";dbname=".$this->db_name;
常规传统链接方法:
<?php
$mysql_server_name="10.44.202.1*7";
$mysql_username="username";
$mysql_password="PWD";
$mysql_database="database_mysql";
$conn=mysql_connect($mysql_server_name, $mysql_username,
$mysql_password);
$strsql="select * from user";
$result=mysql_db_query($mysql_database, $strsql, $conn);
while($row=mysql_fetch_row($result)){//一定要循环,指针下移。
print_r($row);
}
?>
mysql_fetch_row()与mysql_fetch_array()的区别:
两个函数,返回的都是一个数组,区别就是第一个函数返回的数组是只包含值,我们只能$row[0],
$row[1],这样以数组下标来读取数据,而mysql_fetch_array()返回的数组既包含第一种,也包含键值
对的形式,我们可以这样读取数据,(假如数据库的字段是 username,passwd):
$row['username'], $row['passwd']
而且,如果用($row as $kay => $value)来操作的话,还以直接取得数据库的字段名称。
更主要的是mysqli是php5提供的新函数库,(i)表示改进,其执行速度更快.MysqlLi类库:
DROP TABLE IF EXISTS `userinfo`;
CREATE TABLE `userinfo` (
`ID` smallint(8) NOT NULL,
`Name` varchar(12) DEFAULT NULL,
`Detail` text,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of userinfo
-- ----------------------------
INSERT INTO `userinfo` VALUES ('1', 'xiangdong', 'ackxiang');
INSERT INTO `userinfo` VALUES ('2', 'jiaxuan', 'k3s');
对比来自:http://www.jb51.net/article/37909.htm
以上代码没有问题,但是查看mysql pdo中有如下问题:
当我使用PDO_MYSQL连上mysql以后,可以利用这个参数自动执行一些QUERY。最常见的使用场合是连接mysql使用utf-8字符集
以上代码会在连上mysql之后马上执行sql::
show variables like "character_set%";
用来查看编码,不能动不动就搞set names 'utf8'!
字符集详情:http://dev.mysql.com/doc/refman/5.1/zh/charset.html
参考:
http://www.phpv.net/html/1579.html
http://www.phpchina.com/html/200611/n2844.html
http://www.diybl.com/course/4_webprogram/php/phpshil/200725/9799.html
$dsn="mysql:host=".$this->db_host.";port=".$this->db_port.";dbname=".$this->db_name;
<?php
$dsn = "mysql:host=localhost;dbname=DB_***2010_11";
$db = new PDO($dsn, 'root', '*****');
$db->query('set names utf8;'); //你可能会用到的utf-8,哈哈
$rs = $db->query("SELECT * FROM Tbl_User_***");
$result_arr = $rs->fetchAll();
print_r($result_arr);
?>
$dsn = "mysql:host=localhost;dbname=DB_***2010_11";
$db = new PDO($dsn, 'root', '*****');
$db->query('set names utf8;'); //你可能会用到的utf-8,哈哈
$rs = $db->query("SELECT * FROM Tbl_User_***");
$result_arr = $rs->fetchAll();
print_r($result_arr);
?>
常规传统链接方法:
<?php
$mysql_server_name="10.44.202.1*7";
$mysql_username="username";
$mysql_password="PWD";
$mysql_database="database_mysql";
$conn=mysql_connect($mysql_server_name, $mysql_username,
$mysql_password);
$strsql="select * from user";
$result=mysql_db_query($mysql_database, $strsql, $conn);
while($row=mysql_fetch_row($result)){//一定要循环,指针下移。
print_r($row);
}
?>
mysql_fetch_row()与mysql_fetch_array()的区别:
两个函数,返回的都是一个数组,区别就是第一个函数返回的数组是只包含值,我们只能$row[0],
$row[1],这样以数组下标来读取数据,而mysql_fetch_array()返回的数组既包含第一种,也包含键值
对的形式,我们可以这样读取数据,(假如数据库的字段是 username,passwd):
$row['username'], $row['passwd']
而且,如果用($row as $kay => $value)来操作的话,还以直接取得数据库的字段名称。
更主要的是mysqli是php5提供的新函数库,(i)表示改进,其执行速度更快.MysqlLi类库:
DROP TABLE IF EXISTS `userinfo`;
CREATE TABLE `userinfo` (
`ID` smallint(8) NOT NULL,
`Name` varchar(12) DEFAULT NULL,
`Detail` text,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of userinfo
-- ----------------------------
INSERT INTO `userinfo` VALUES ('1', 'xiangdong', 'ackxiang');
INSERT INTO `userinfo` VALUES ('2', 'jiaxuan', 'k3s');
对比来自:http://www.jb51.net/article/37909.htm
<?php
$dsn = "mysql:host=localhost;dbname=test_php_work";
$db = new PDO($dsn, 'root', '');
//$db->query('set names utf8;'); //你可能会用到的utf-8,哈哈
//插入
/*
$count = $db->exec("insert into union_index set Tid='1234565788',Uid='666',Status='1'");
echo $count;
*/
//显示
/*
$rs = $db->query("SELECT * FROM union_index");
$result_arr = $rs->fetchAll();
print_r($result_arr);
*/
//显示2
$rs = $db->prepare("SELECT * FROM union_index");
$rs->execute();
while($row = $rs->fetch())
{
echo $row[Tid]." ".$row[Uid]." ".$row[Status]."<br>";
//print_r($row);
}
//获取指定记录里一个字段
/*
$rs = $db->query("SELECT COUNT(*) FROM union_index");
$col = $rs->fetchColumn();
echo $col;
*/
?>
$dsn = "mysql:host=localhost;dbname=test_php_work";
$db = new PDO($dsn, 'root', '');
//$db->query('set names utf8;'); //你可能会用到的utf-8,哈哈
//插入
/*
$count = $db->exec("insert into union_index set Tid='1234565788',Uid='666',Status='1'");
echo $count;
*/
//显示
/*
$rs = $db->query("SELECT * FROM union_index");
$result_arr = $rs->fetchAll();
print_r($result_arr);
*/
//显示2
$rs = $db->prepare("SELECT * FROM union_index");
$rs->execute();
while($row = $rs->fetch())
{
echo $row[Tid]." ".$row[Uid]." ".$row[Status]."<br>";
//print_r($row);
}
//获取指定记录里一个字段
/*
$rs = $db->query("SELECT COUNT(*) FROM union_index");
$col = $rs->fetchColumn();
echo $col;
*/
?>
<?php
error_reporting(E_ALL);
$dsn = "mysql:host=localhost;dbname=test";
$db = new PDO($dsn, 'root', '');
//$db->query('set names utf8;');
$sql = "INSERT INTO `test`.`mytest` (`id` ,`uid` ,`rstatus` ,`content`) VALUES ('121', '2', '2', '我得天啊,乱码!')";
$rs = $db->prepare($sql);
$isrue = $rs->execute();
//$db->query('set names utf8;');
$sql = "select * from mytest";
$rs = $db->prepare($sql);
$rs->execute();
while($row = $rs->fetch())
{
echo $row['uid']." ".$row['rstatus']." ".$row['content']."<br>";
//print_r($row);
}
?>
error_reporting(E_ALL);
$dsn = "mysql:host=localhost;dbname=test";
$db = new PDO($dsn, 'root', '');
//$db->query('set names utf8;');
$sql = "INSERT INTO `test`.`mytest` (`id` ,`uid` ,`rstatus` ,`content`) VALUES ('121', '2', '2', '我得天啊,乱码!')";
$rs = $db->prepare($sql);
$isrue = $rs->execute();
//$db->query('set names utf8;');
$sql = "select * from mytest";
$rs = $db->prepare($sql);
$rs->execute();
while($row = $rs->fetch())
{
echo $row['uid']." ".$row['rstatus']." ".$row['content']."<br>";
//print_r($row);
}
?>
以上代码没有问题,但是查看mysql pdo中有如下问题:
当我使用PDO_MYSQL连上mysql以后,可以利用这个参数自动执行一些QUERY。最常见的使用场合是连接mysql使用utf-8字符集
$db = new PDO("mysql:dbname=dbname", "user", "password",array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
以上代码会在连上mysql之后马上执行sql::
set names 'utf-8';
show variables like "character_set%";
用来查看编码,不能动不动就搞set names 'utf8'!
字符集详情:http://dev.mysql.com/doc/refman/5.1/zh/charset.html
参考:
http://www.phpv.net/html/1579.html
http://www.phpchina.com/html/200611/n2844.html
http://www.diybl.com/course/4_webprogram/php/phpshil/200725/9799.html
注意:Index(Name,Age)表示在Name,Age两列上建立联合索引
ALTER TABLE tablename ADD INDEX(Tid,Uid);
由于索引对数据库的查询性能有着至关重要的影响,下面是我的一些总结和体会:
一个查询一次只能使用一个索引:select name from user where name='plantegg' and age>35 , 如果Index(name); Index(age)的话,MySQL查询优化器会自动选择一个索引来使用;
MySQL选择哪个索引,可以这样来看:mysql> show index from photo;
+-------+------------+------------------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+-------+------------+------------------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+
| photo | 0 | PRIMARY | 1 | photo_id | A | 237871 | NULL | NULL | | BTREE | |
| photo | 1 | index_random | 1 | random | A | 237871 | NULL | NULL | YES | BTREE | |
| photo | 1 | FK_photo_profile_id | 1 | profile_id | A | 237871 | NULL | NULL | | BTREE | |
| photo | 1 | FK_photo_temp_photo_id | 1 | temp_photo_id | A | 237871 | NULL | NULL | YES | BTREE | |
| photo | 1 | FK_photo_album_id | 1 | album_id | A | 237871 | NULL | NULL | YES | BTREE | |
+-------+------------+------------------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+
Cardinality越大表示索引候选分得越细(默认都是BTree索引);
你也可以试试Force Index强制使用某个索引看看速度是不是MySQL是不是查询起来更快(如果真是这样的话你需要Analyze yourTable 了,MySQL重新计算你的Cardinality以帮助他正确地选择INDEX)
仔细分析Explain的结果:重点留意Extra,Key,Rows,Select_type的结果!
小心查询中的Group by 、order by之类的,基本上这样的查询在Explain的时候都会出现: Using where; Using temporary; Using filesort
联合索引要小心使用,Index(Name,Age)时,如果where name='pp' 能使用索引,where age=25时不能使用索引;where name='pp' and age>25 能使用索引; where name ='pp' order by age 能使用索引; where name>'pp' order by age 不能使用索引,但是 where name>'pp' order by name,age 能使用索引,请仔细留意差异 ; order by name asc age desc 将不能使用索引!
阅读全文
ALTER TABLE tablename ADD INDEX(Tid,Uid);
由于索引对数据库的查询性能有着至关重要的影响,下面是我的一些总结和体会:
一个查询一次只能使用一个索引:select name from user where name='plantegg' and age>35 , 如果Index(name); Index(age)的话,MySQL查询优化器会自动选择一个索引来使用;
MySQL选择哪个索引,可以这样来看:mysql> show index from photo;
+-------+------------+------------------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+-------+------------+------------------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+
| photo | 0 | PRIMARY | 1 | photo_id | A | 237871 | NULL | NULL | | BTREE | |
| photo | 1 | index_random | 1 | random | A | 237871 | NULL | NULL | YES | BTREE | |
| photo | 1 | FK_photo_profile_id | 1 | profile_id | A | 237871 | NULL | NULL | | BTREE | |
| photo | 1 | FK_photo_temp_photo_id | 1 | temp_photo_id | A | 237871 | NULL | NULL | YES | BTREE | |
| photo | 1 | FK_photo_album_id | 1 | album_id | A | 237871 | NULL | NULL | YES | BTREE | |
+-------+------------+------------------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+
Cardinality越大表示索引候选分得越细(默认都是BTree索引);
你也可以试试Force Index强制使用某个索引看看速度是不是MySQL是不是查询起来更快(如果真是这样的话你需要Analyze yourTable 了,MySQL重新计算你的Cardinality以帮助他正确地选择INDEX)
仔细分析Explain的结果:重点留意Extra,Key,Rows,Select_type的结果!
小心查询中的Group by 、order by之类的,基本上这样的查询在Explain的时候都会出现: Using where; Using temporary; Using filesort
联合索引要小心使用,Index(Name,Age)时,如果where name='pp' 能使用索引,where age=25时不能使用索引;where name='pp' and age>25 能使用索引; where name ='pp' order by age 能使用索引; where name>'pp' order by age 不能使用索引,但是 where name>'pp' order by name,age 能使用索引,请仔细留意差异 ; order by name asc age desc 将不能使用索引!

http://thinhunan.cnblogs.com/Files/thinhunan/prototype.rar