- 普通 - 未处理
[i=s] 本帖最后由 deeka 于 2011-10-31 12:10 编辑 [/i]例子:
$model = D('News');
$map['day'] = date('Ymd');
$count = $model->where($map)->count();
echo $model->getLastSql();
// SELECT COUNT(*) AS `tp_count` FROM `test_news` WHERE `day`='';
$rows = $modl->where($map)->select();
echo $model->getLastSql();
// SELECT * FROM `test_news` WHERE `day`='20111031';
?>用的是同一个$map参数,居然生成的SQL参数不一样。经调试....(此处省略调试过程的1万字)。
Db\Driver\DbMysql.class.php
第 410 行:
插入dump($this->_li
你会发现在count()操作那段调试的结果是NULL。正因为这个原因,导致了返回的$str为空,一层层的向上影响到了where条件。
修正方案:
return mysql_real_escape_string($str,$this->_li
改为:
return mysql_real_escape_string($str);
至于什么原因导致这个问题,还没深入的考究。但流年大哥本地调试无法重现,怀疑跟php版本有关。
