我正在尝试检索要在其他地方用作变量的记录的ID号。我只想从另一列中具有特定值的记录中获取id。这是我的代码:
$result = mysql_query("SELECT id FROM order WHERE orderNumber = '$orderNumber'") or die (mysql_error());
$id = $result;
当我测试时,我得到:SQL语法;查看与您的MySQL服务器versi0on对应的手册,以便在'order WHERE orderNumber ='5b0ea3'
附近使用正确的语法有什么想法吗?
答案 0 :(得分:4)
SELECT id FROM order WHERE orderNumber = '$orderNumber
ORDER是SQL中的一个reserver字;我建议您将列的名称更改为其他名称。
如果你真的不能,那么你可以用反引号转义列名和表名:
SELECT `id` FROM `order` WHERE `orderNumber` = '$orderNumber'
另请参阅关于停止使用mysqli_
函数的评论 - 它们不安全,并且已被弃用。
答案 1 :(得分:1)
由于ORDER
是保留字,因此必须在sql查询中使用反引号。然后使用mysql_fetch_assoc获取ID。
$result = mysql_query("SELECT `id` FROM `order` WHERE `orderNumber` = '$orderNumber'") or die (mysql_error());
$row = mysql_fetch_assoc($result);
$id = $row['id'];
另一方面,您应该使用PDO
或Mysqli
,mysql_*
函数已被弃用并被视为不良做法。
如果您打算继续使用mysql_query
,请至少确保使用mysql_real_escape_String清理$orderNumber
变量。
答案 2 :(得分:0)
mysqli_query($connection,"SELECT `id` FROM `order` WHERE `orderNumber` = '$orderNumber'");
如您所见,必须包含$ connection。
答案 3 :(得分:-1)
使用具有查询功能的自定义数据库类构建,但SQL查询工作
$id = 1;
$database->query("SELECT * FROM tbl_post WHERE post_id = '$id'");