麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
这是一段很多人用的代码 但是总觉得有问题
悬赏分:20 - 2007年08月22日

这是一个数据库类的片段 主要是判断连接的数据库版本 然后设定连接的字符集

问题出在
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]

提问者:lywindly   08-22 16:04
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
24 + 71 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM