簡體   English   中英

查詢不起作用

[英]Query doesn't work

我嘗試此查詢時收到以下錯誤消息:

$query .= "($tid, {$_POST['type']['$i']}, 'Y', NOW())";

您的SQL語法有誤。 查看與您的MySQL服務器版本相對應的手冊,以在附近使用正確的語法

(18, , 'Y', NOW())' at line 1

除了這一行,我代碼中的所有內容均有效。 我知道它與$ _POST數組變量有關,但是我不知道正確的語法。

如果您需要更多代碼,我將很樂意將其包含在內。

您在$i周圍使用單引號是錯誤的:

$query .= "($tid, {$_POST['type']['$i']}, 'Y', NOW())";

這將導致$ i 從字面上取而代之,而不是使用$ i的值(這是我認為您需要的)。

這應該工作:

$query .= "($tid, {$_POST['type'][$i]}, 'Y', NOW())";

如果需要更好的幫助,請顯示發送post變量的代碼(可能是表單或AJAX請求)。

但是您的問題可能出在這里:

$query .= "($tid, {$_POST['type']['$i']}, 'Y', NOW())";

該帖子的評估結果類似於$_POST['type']['1'] 您可能需要$_POST['type'][1]

所以試試這個:

$query .= "($tid, {$_POST['type'][$i]}, 'Y', NOW())";

如前所述。

$query .= "($tid, {$_POST['type']['$i']}, 'Y', NOW())";

應該讀

$query .= "($tid, {$_POST['type'][$i]}, 'Y', NOW())";

很好奇為什么要使用“ {}”。

就是說,您應始終避免直接將$ _GET或$ _POST中的變量鍵入要在查詢或網站任何其他方面使用的代碼中。

您確實應該養成習慣,或者通過預先確定的方式傳遞變量。

更不用說,您將在運行sql查詢之前轉義這些變量。

看一眼

http://php.net/mysql_real_escape_string http://php.net/pdo.quote

如果您有時間,請調查pdo。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM