用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1325|回复: 4
收起左侧

有一个好奇怪的问题

[复制链接]
发表于 2015-2-26 15:32:31 | 显示全部楼层 |阅读模式
PHP复制代码
$ci = & get_instance();
$openid = 'objM_uKjQaFX7VeFSPefB7gd9b8Q';
$type = 'wx';
 
$query = "select contact_id from contact_history where openid = ? and type = ?";
$rs = $ci->db->query($query,array($openid,$type));
 
 
 
复制代码



这个语句执行在错误日志里面提示
PHP复制代码
 
Query error: Unknown column 'objM_uKjQaFX7VeFSPefB7gd9b8Q' in 'where clause'
 
复制代码



真的很奇怪, 如果是转移的话 都会加 " ' " ,
所以最后执行的语句应该是
SQL复制代码
 
SELECT contact_id FROM contact_history WHERE openid = 'objM_uKjQaFX7VeFSPefB7gd9b8Q' AND TYPE = 'wx'
 
复制代码



这个语句直接执行没问题,
问题就出在 ci 的db 驱动那...完全找不到原因...
是因为 _ 转义问题还是什么
 楼主| 发表于 2015-2-26 15:48:47 | 显示全部楼层
PHP复制代码
 
        $rs = $ci->db->query($query,array("$openid",$type));
 
复制代码


改成这样, 在openid加"" 就没有错误了...

- - 好奇怪...真的是因为转义原因么
发表于 2015-2-26 16:37:00 | 显示全部楼层
字符串能不加引号?
 楼主| 发表于 2015-4-8 09:35:19 | 显示全部楼层
gxcnvip 发表于 2015-2-26 16:37
字符串能不加引号?

那是参数, 使用 php 的魔法 双引号  ,  传参时候一般不会使用 " 来确定string的吧
发表于 2015-5-26 15:50:42 | 显示全部楼层
你打印ci生成的sql不就知道了。。。

本版积分规则