![]() |
|
首页 │ Apache │ Linux│ Java│ MySQL│ 注册│帮助 | |||
这是一个数据库类的片段 主要是判断连接的数据库版本 然后设定连接的字符集
问题出在
if($this->version() > '4.1')
if($this->version() > '5.0.1')
version() 这个函数会获得mysql的版本号 4.1.22-community-nt
但是$this->version() 的结果是字符串 无论是'4.1.22-community-nt '还是'5.0.2-community-nt' 都会大于'5.0.1' '4.1' 所以IF必然会执行下面的语句 所以这个判断好像没什么用吧 反正都肯定会执行的 应该可以合并成一句 吧
顺便问哈 为什么5.0要SET sql_mode='' "
[php]
function version() {
return mysql_get_server_info();
}[/php]
[php]
if($this->version() > '4.1') {
global $charset, $dbcharset;
if(!$dbcharset && in_array(strtolower($charset), array('gbk', 'big5', 'utf-8'))) {
$dbcharset = str_replace('-', '', $charset);
}
if($dbcharset) {
//mysql_query("SET NAMES '$dbcharset'");
mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary;");
}
}
if($this->version() > '5.0.1') {
mysql_query("SET sql_mode=''");
}[/php]

