[英]PHP/SQL Query - Inserting a Variable Inside a String Variable
嘗試在將用作查詢的字符串變量中插入一個變量。
$staffID = $_GET["staffID"];
$conn = mysqli_connect("localhost", "twa095", "twa095de", "factory095");
if ( !$conn )
{
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT staffName, orderID, orderDate, shippingDate
FROM purchase INNER JOIN staff ON purchase.staffID = staff.staffID
WHERE staffID = $staffID // Problem is over here.
GROUP BY orderDate"
$results = mysqli_query($conn, $sql)
or die ('Problem with query' . mysqli_error($conn));
?>
將此作為錯誤:
where 子句中的 queryColumn 'staffID' 問題不明確
另外,有沒有辦法讓我檢查給定的“staffID”(第一行)是否在數據庫內,以及是否不終止腳本並在執行下面的所有內容之前顯示錯誤消息?
實際上, staffID
存在於兩個連接表(采購和員工)中。 Mysql 混淆了人員staffID
是來自采購表還是人員表。 要解決您的問題,請添加tablename.
到查詢的 where 子句中的人員staffID
為:
$sql = "SELECT staffName, orderID, orderDate, shippingDate
FROM purchase INNER JOIN staff ON purchase.staffID = staff.staffID
WHERE staff.staffID = '{$staffID}' // Problem is over here.
GROUP BY orderDate"
同樣作為最佳實踐,在另一個字符串內的變量周圍添加
{}
,如果變量為空,則單引號將正常工作。
其次,要檢查員工 ID 是否已經在表中並返回錯誤,您必須在 if 子句中使用mysqli_num_rows()並向用戶打印錯誤消息:
$sql = "SELECT staffName, orderID, orderDate, shippingDate
FROM purchase INNER JOIN staff ON purchase.staffID = staff.staffID
WHERE staff.staffID = $staffID // Problem is over here.
GROUP BY orderDate"
$results = mysqli_query($conn, $sql)
or die ('Problem with query' . mysqli_error($conn));
if(mysqli_num_rows($conn,$result)>0){
echo "Error Message";
exit;
}
您可能需要在查詢中的變量名稱周圍使用單引號:
WHERE staff.staffID = $staffID // 問題到此為止。 應該改為:
WHERE staff.staffID = '$staffID'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.