2010-06-01 101 views
1
date_default_timezone_set('America/Guayaquil'); 
$cnn->execute('SET NAMES utf8'); 
$cnn->execute('SET GLOBAL time_zone = "-5:00"'); 

嗨,上述代码运行每次有人进入网站IM发展。有人知道这些命令对性能的影响是什么?mysql和php:开始时设置配置变量 - 影响服务器?

+0

身高['mysql_set_charset'](http://php.net/manual/en/function.mysql-set-charset.php),** **不'SET NAMES'。这个函数正确地更新'mysql_real_escape_string'使用的字符集。如果你只使用'SET NAMES',默认情况下,新的字符集的一个不幸的组合可以让'mysql_real_escape_string'以同样的方式失败,因为'mysql_escape_string'往常一样,这可能使你的SQL注入安全漏洞。 – bobince 2010-06-01 23:39:29

回答

1

的PHP date_default_timezone_set命令:可忽略

的两个MySQL命令:不太可能是显著。

不要你的意思是SET SESSION,而不是SET GLOBAL?如果你只是为了连接而做...

编辑:为了扩大我的答案,我有一个脚本,它包含在我的网站上的几乎所有PHP脚本中,它们设置了诸如date_default_timezone_set,启动会话,定义功能等。它还通过数据库连接将SQL模式设置为“TRADITIONAL”。我认为设置一些配置选项是你不应该试图避免的。

+0

谢谢!我实际上的意思是全球基于我读的。但是,有什么区别呢? – andufo 2010-06-01 23:01:33

+0

按:http://dev.mysql.com/doc/refman/5.1/en/set-option.html 2个显著差异是:1)“超级权限需要设置全局变量。” 2)“如果你更改会话系统变量,则该值仍然有效,直到会话结束,或直到你改变的变量不同的价值。......如果你改变一个全局系统变量,则该值被记住并使用新连接直到服务器重新启动。“根据你明显需要的行为,SET SESSION就是你想要的。 – Hammerite 2010-06-01 23:09:43