我不斷收到語法錯誤或訪問衝突:1064上isset
'SQLSTATE[42000]: Syntax error or access violation: 1064 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 ''5'' at line 5'
與「5」是從下拉框中選擇任何號碼。
這裏是我迄今爲止涉及的問題的代碼。
if (isset($_GET['orderBy']) && $_GET['orderBy'] == 'rank' || $_GET['orderBy'] == 'release_year' || $_GET['orderBy'] == 'author'
|| $_GET['orderBy']== 'publisher')
if (isset($_GET['returnLimit']) && $_GET['returnLimit'] == 1 || $_GET['returnLimit'] == 5 || $_GET['returnLimit'] == 10
|| $_GET['returnLimit'] == 25 || $_GET['returnLimit'] == 50 || $_GET['returnLimit'] == 75
|| $_GET['returnLimit'] == 100)
{
try{
$db = new PDO ("mysql:host=localhost;dbname=user", "user", "12345");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$minimum = $_GET['minimumYear'];
$maximum = $_GET['maximumYear'];
$order = $_GET['orderBy'];
$limit = $_GET['returnLimit'];
$q = "SELECT *
FROM book
WHERE '$minimum' <= '$maximum'
ORDER BY '$order'
LIMIT '$limit'";
$query = $db->query($q);
$statement = $db->prepare($query);
$statement->execute();
從我得到的,我猜它顯示出來,因爲有被傳遞到$沒有限制數量的錯誤,所以SQL查詢無關「限價」。我檢查過的語法,但無法弄清楚我做錯了什麼,任何幫助將不勝感激。
你能以某種方式找到單獨的SQL語句,在PHP的東西后? – jarlh
回聲SQL語句($ Q),然後嘗試在phpMyAdmin調試 –
試試這個$ Q = 「SELECT * \t FROM書 \t WHERE」。$最低。 「<=」 $最大。」 \t ORDER BY 「。$ order。」 \t LIMIT「。$ limit; – aimme