【发布时间】:2012-03-14 15:49:17
【问题描述】:
编辑:
$query->where('`value` = ?', $number); 似乎可以完成这项工作。我仍然不知道为什么它在正常条件下不起作用,但它是一种解决方法.. 仍在寻找正确的答案!
我正在尝试使用简单的方式查询数据库:
$number = 4;
$query = $this->select();
$query->where('value = ?', $number);
$row = $this->fetchRow($query);
但由于某种原因,我经常收到此错误:
SQLSTATE[42000]:语法错误或访问冲突:1064 你有一个 SQL 语法错误;检查与您对应的手册 MySQL 服务器版本,在 'value = 4) 附近使用正确的语法 在第 1 行限制 1'
当我进行组装以查看查询字符串时:
SELECT `mighty_table`.* FROM `mighty_table` WHERE (value = 4)
我的列名没有转义..
Zend DB 应该这样做吗? :|这很奇怪,因为我在其他项目中使用相同的方法并且它总是有效..
【问题讨论】:
-
Syntax error or access violation检查您的连接字符串是否正确。这可能是由错误的用户名/密码引起的。 -
@vascowhite 让我的连接正常工作,这不是问题所在。 :\
-
试试
$query->where("value = '?', $number);。我看不出其他任何可能有问题的地方。 -
你的数据库中有一个mighty_table.value 列吗?
-
如果您直接在数据库中运行查询,它是否有效?
标签: mysql zend-framework zend-db