[英]Insert PHP Array Into MySQL With WHERE Clause
我已經讀過使用WHERE子句將數組傳遞給查詢的方法 ,這基本上是我正在做的事情,但是使用字符串而不是整數。 我的WHERE子句有問題。
$codes_imp = "'" . implode("','", $codes) . "'";
$passwords_imp = "'" . implode("','", $passwords) . "'";
$comments_imp = "'" . implode("','", $comments) . "'";
$set_pass_query = "INSERT INTO users (password, comments) VALUES ($passwords_imp, $comments_imp) WHERE Code IN ($codes_imp)";
執行后,查詢如下所示:
INSERT INTO users (password, comments)
VALUES ('password1', 'password2', 'password3', 'comment1', 'comment2', 'comment3')
WHERE Code IN ('code1', 'code2', 'code3')
表中的所有列均為VARCHAR
類型。 顯然,我有一個語法錯誤(正告訴我),但是我不確定如何正確地構造它。
您正在嘗試使用WHERE
子句約束INSERT
查詢。 那是很大的禁忌。
您想UPDATE
,或者需要刪除WHERE
您到底想完成什么?
您需要使用UPDATE
而不是INSERT
來更改現有的數據庫行。 您可以使用像foreach
循環這樣的循環構造。 例如:
foreach($codes_imp as $key=>$code){
$query="UPDATE users SET password='$passwords_imp[$key]', comments='$comments_imp[$key]' WHERE Code='$code'"
[Code to execute the query goes here]
}
注意:我們需要使用循環構造,因為UPDATE
查詢一次只能在一個數據庫行上運行。
替代方法:
除了使用循環外,還可以在Mysql中使用CASE WHEN ELSE END
語法。
要了解如何使用此功能,請參閱:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.