新手在這裏。當我在WHERE子句中放置一個日期('YYYY-MM-DD')時,它的效果很好。當我用前一頁傳遞的變量替換它時,WHERE子句被忽略。是否因爲變量尚未創建?查詢中where子句變量被忽略
<?php $name = $_POST["start"]; ?>
$query = "SELECT employees.first, employees.last, employees.street, employees.city,
employees.a, employees.b,
GROUP_CONCAT(empchecks.checknum ORDER BY empchecks.checkdate SEPARATOR '<br /> ') as
checknum,
GROUP_CONCAT(empchecks.checkdate ORDER BY empchecks.checkdate
SEPARATOR '<br /> ')
as checkdate
FROM employees
INNER JOIN empchecks ON employees.enum = empchecks.enum
WHERE empchecks.checkdate >= '$start' GROUP BY empchecks.enum";
** WARNING **你的代碼容易受到SQL注入攻擊! – 2011-12-16 18:14:12
你可以驗證$ start的值嗎?也就是說,如果你迴應$ query,它說什麼?而丹尼爾也是這樣說的。 :)它不可能被忽略;相反,checkdate比較可能評估爲true($ start是一個空字符串或任何被強制成爲時代開始的東西等等)。 – Christopher 2011-12-16 18:14:21
鑑於你的代碼,'$ start`尚未定義。更重要的是,根據您如何清理輸入變量,您的變量插值技術可能會讓您面臨SQL注入攻擊。 – Kenaniah 2011-12-16 18:15:09