将PHP变量添加到MySQL字符串的正确语法究竟是什么?
这是我的疑问:
"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
从表单收到$id = $_POST['id'];
,然后将其删除并转发。
感谢。
答案 0 :(得分:2)
如果MySQL说“ AND cd.ShowOnSite ='y'”附近有错误,这通常意味着它之前的任何问题都存在问题 - 在这种情况下, $ ID 即可。
您可以在PHP文件中打印出查询吗?这可能会显示 $ id 实际上是空白的,这会使查询看起来像“ WHERE s.SiteID = AND cd.ShowOnSite ='y'”。< / p>
如果它是空白的,那么 $ id 值显然有问题,您需要在MySQL代码之前进行整理。