SELECT ID FROM TABLE_NAME WHERE列= $变量

问题描述 投票:2回答:4

我试图检索记录的ID号作为变量的其他地方使用。我只想从具有另一列特定值的记录的ID。这里是我的代码:

$result = mysql_query("SELECT id FROM order WHERE orderNumber = '$orderNumber'") or die (mysql_error());
$id = $result;

当我测试我得到:SQL语法;检查对应于你的MySQL服务器versi0on为正确的语法使用近“为了WHERE订单号码=‘5b0ea3’手册

有任何想法吗?

php select where
4个回答
4
投票
SELECT id FROM order WHERE orderNumber = '$orderNumber

顺序是SQL的保留字;我建议你改变了列的名称别的东西。

如果你真的不能,那么你就可以逃脱与反引号列和表名:

SELECT `id` FROM `order` WHERE `orderNumber` = '$orderNumber'

而且也看到了评论有关停止使用mysqli_功能 - 它们是不安全的,而被弃用。


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

在另一方面,你应该使用PDOMysqli,该mysql_*功能已被取消,被认为是不好的做法。

如果您在使用mysql_query计划保持,至少确保有$orderNumber消毒的mysql_real_escape_String变量。


0
投票
mysqli_query($connection,"SELECT `id` FROM `order` WHERE `orderNumber` = '$orderNumber'");

如你所见,你必须包括$连接。


-1
投票

使用自定义的数据库类的查询功能内置,但SQL查询作品

$id = 1;
$database->query("SELECT * FROM tbl_post WHERE post_id = '$id'");
© www.soinside.com 2019 - 2024. All rights reserved.