php - 抛出 SQL 语法错误的简单查询

标签 php sql mysql

我有一个简单的 SQL 查询,它不断抛出 SQL 语法错误。它看起来像这样:

$sql = "SELECT COUNT(*) AS TOTAL FROM PRODUCT WHERE ID_PRODUCT = ".$id;
$result = mysql_query($sql) or die(mysql_error()); 

抛出:

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 'WHERE ID_PRODUCT = 1' at line 1

我不明白这是怎么回事。当然,如果我直接在 phpMyAdmin 中尝试查询,它就没有问题。

它返回与 SELECT *

完全相同的错误

编辑:ID_PRODUCT 是外键...

更新:当用 $sql 字符串 WHERE ID_PRODUCT = 2 中的静态值替换 $id 变量以及通过以下方式保护名称时,我也会遇到同样的错误引号。

最佳答案

如果 ID_PRODUCT 列是 varchar,您需要在 where 子句中将值用单引号引起来。可能是这样的,没有关于您的架构的信息无法判断。


更新:当时还不确定。显然,下一步是打印出生成的 SQL 并尝试手动运行它,希望问题会显现出来,并且您将能够排除 PHP 是问题的根源。

关于php - 抛出 SQL 语法错误的简单查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2310914/

相关文章:

MYSQL 查询/子查询合并

PHP 检查一个 ID 是否与事件 ID 关联

php - 使用 PHP 发送电子邮件的表单

php - 将 javascript 变量的值插入到 php 变量中

php - 使用 Doctrine 查询生成器插入记录

php - 出于安全原因,set_time_limit() 已被禁用

mysql查询匹配字符串数组与数据库

sql - 将值分配给 SQL Server 中的多行

php - Laravel API : RegisterController set a default value on creating an User not working

php - 根据 CodeIgniter 上的子字符串查询按 id 进行分组