簡體   English   中英

SELECT id FROM table_name WHERE column = $variable

[英]SELECT id FROM table_name WHERE column = $variable

我正在嘗試檢索記錄的 ID 號以用作其他地方的變量。 我只想要在另一列中具有特定值的記錄中的 id。 這是我的代碼:

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

當我測試時,我得到: SQL 語法; 檢查與您的 MySQL 服務器版本相對應的手冊,了解在 'order WHERE orderNumber = '5b0ea3' 附近使用的正確語法

有任何想法嗎?

SELECT id FROM order WHERE orderNumber = '$orderNumber'

ORDER 是 SQL 中的保留字; 我建議您將表的名稱更改為其他名稱。

如果你真的不能,那么你可以用反引號轉義列和表名:

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

要么

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

還可以查看關於停止使用mysqli_函數的評論——它們不安全,並且已被棄用。

由於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 ,至少確保使用mysql_real_escape_String清理$orderNumber變量。

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

如您所見,您必須包含 $connection。

使用具有查詢功能的自定義數據庫類構建,但 SQL 查詢有效

$id = 1;
$database->query("SELECT * FROM tbl_post WHERE post_id = '$id'");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM