【发布时间】:2015-10-04 15:36:40
【问题描述】:
我正忙着将我的 CodeIgniter 从 2.1.4 升级到 3.0.1,并按照此处的说明进行操作:http://www.codeigniter.com/userguide3/installation/upgrade_300.html
自从我开始,我得到这个错误:
Error Number: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? AND `password` = ?' at line 3
这是完整的查询:
$sql = "
SELECT *
FROM `icms4_user`
WHERE `username` = ?
AND `password` = ?
";
现在升级似乎导致数据库类拒绝将问号占位符替换为其适当的值。
查询代码如下:
$q = $this->db->query($sql, array($user, $pass));
有人知道是什么原因造成的吗?
【问题讨论】:
-
你能告诉我们你用来查询的代码吗?
-
$q = $this->db->query($sql, array($user, $pass));- 也会更新问题。谢谢。 -
试试
array('{$user}', '{$pass}')或array(\'{$user}\', \'{$pass}\')。 -
试过Tpojka,没有解决问题。有很多这样的查询,在我升级之前它们都有效。变量设置正确。目前正在研究通过 Git 恢复升级并重新启动它。我对发生的事情一无所知。
-
我只是下载了一个干净的 CI301 并制作了与您显示的相同的代码,完全没有问题。如果表名错误,它会显示带有 ?替换为值。我没有把$sql拆分成多行,会不会有一些奇怪的字符?
标签: php database codeigniter