SELECT id FROM table_name WHERE column = $ variable

时间:2013-06-05 14:05:59

标签: php select where

我正在尝试检索要在其他地方用作变量的记录的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'

附近使用正确的语法

有什么想法吗?

4 个答案:

答案 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'];

另一方面,您应该使用PDOMysqlimysql_*函数已被弃用并被视为不良做法。

如果您打算继续使用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'");