簡體   English   中英

使用foreach循環將PHP變量插入MySQL數據庫

[英]Inserting PHP variables into MySQL database using foreach loop

我有一個數組: $product_counts = array_count_values($product_array);

此數組的鍵是商家ID,值是整數(產品計數)。 所以,如果我要編寫以下代碼:

foreach($product_counts as $key => $value){
    echo "key: $key";
    echo "value: $value";
        }

我會得到以下(這是我想要的):

key: 26816928 value: 13
key: 26816931 value: 2 ... 
X the amount of indexes in the array. 

但是,如果我要編寫以下代碼:

foreach($product_counts as $key => $value){
    mysql_query("INSERT INTO merchantinfo(ProductCount) VALUES $value WHERE MerchantID = $key"); 
}

$ value變量的值不會進入MerchantID = $ key ....的字段,而是元組只是默認為null,這就是我設置它們要做的事情。 我相信這可能是需要將變量類型轉換為整數的情況....但我總體上對此非常失敗。

提前致謝

您不能在insert語句中使用where子句。 我想你想要使用更新。

mysql_query("update merchantinfo set ProductCount= $value WHERE MerchantID = $key");

取()中的值也是如此:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

在您的情況下,您必須使用UPDATE而不是INSERT

UPDATE merchantinfo SET ProductCount = $value WHERE MerchantID = $key

看起來你想要更新值而不是插入:這應該適合你:

$query = "UPDATE merchantinfo set ProductCount='$value' WHERE MerchantID='$key'";

如果要插入新行,則:

$query = "INSERT INTO merchantinfo(ProductCount,MerchantID) VALUES('$value','$key')";

無論如何使用PDO和准備聲明會更好(至少更安全)

$stmt = $pdo->prepare("UPDATE merchantinfo set ProductCount=? WHERE MerchantID=?");
foreach($product_counts as $key => $value){
    $stmt->execute(array($value, $key));
}

暫無
暫無

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

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