2012-03-30
前天测试出在64位系统下不能发送激活邮件的bug
打出error_msg:为permission deny
调试搜索了半天,没有结果;网上主要说的是
fsockopen被关闭啊,用pfsockopen,或者stream_socket_client()来代替
都试过不行;
因为在window下这几个函数都没有问题,所以想到是linux的selinux的问题,这个东东困扰过好几次了,以后碰到问题请首先想到这个;
既然默认开启了肯定有他的好处,不能关selinux,就搜索:selinux+smtp
找到了答案,selinux果然是不允许http来连接网络的,执行如下命令:
setsebool -P httpd_can_network_connect=1
即可发送邮件了,看来得好好看看selinux这个鬼东西了。
详情参考:
To allow PHP/Apache to connect to port 25 issue the following commands as root:
setsebool -P httpd_can_network_connect=1
To allow PHP mail() to work issue the following command as root:
setsebool -P httpd_can_sendmail=1
 
2011年
用LOAD DATA INFILE 导入大量数据,速度提高很多
LOAD DATA INFILE语句结束时,会按以下格式返回一个信息字符串:
Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
set_time_limit(0); 用来设置当前php脚本执行时间无限
mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE
对于其它类型的 SQL 语句,
mysql_query()在执行成功时返回 不同的值,可以用mysql_info()获取;
而出错时返回 FALSE
非FALSE 的返回值意味着查询是合法的并能够被服务器执行;
很有可能一条查询执行成功了但并未影响到或并未返回任何行。
因此 php中要小心传入的sql语句,及其返回值;
‘\n’不会换行
“\n” 会换行,因为双引号包裹