將PHP變量添加到MySQL字符串的正確語法究竟是什麼?在MySQL查詢字符串中使用PHP變量WHERE子句
這是我的查詢:
"SELECT cd.SectionID, cd.CompanyName, cd.ShowOnSite, cd.LiveDate, cd.EndDate, cds.SiteID, s.SiteName
FROM CompanyDirectory cd
LEFT JOIN CompanyDirectorySections cds ON cd.SectionID = cds.SectionID
LEFT JOIN Sites s ON cds.SiteID = s.SiteID
WHERE s.SiteID = " . $id . " AND cd.ShowOnSite = 'y'
ORDER BY cd.EndDate DESC"
但它拋出如下:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND cd.ShowOnSite = 'y' ORDER BY cd.EndDate DESC' at line 5
我自己也嘗試WHERE s.SiteID = $id
和WHERE s.SiteID = '" . $id . "'
但無濟於事。前者給出了一個空白屏幕,而後者給出了前述的錯誤。該變量是一個整數。
我已經嘗試了phpMyAdmin中的查詢,並且它完美地工作,將該變量替換爲實際的ID。
注意:如果它很重要,則在查詢前通過$id = $_POST['id'];
從表單中收到$id
,然後剝離並轉義。
謝謝。
什麼是$ id的值? – aderuwe
你打開自己的sql注入。請學習使用準備好的語句。 – Saturnix
'$ id'目前是1到20之間的整數,但可能無限增加。 – mpdc