簡體   English   中英

PHP從具有多維數組的值更新表

[英]PHP updating table from values with multidimensional array

我的PHP代碼是

for($i=1;$i<$rows;$i++)
{
    $flag=0;
   $result = mysqli_query($con,"SELECT id FROM `TABLE 1` ");
   while($row = mysqli_fetch_array($result))
   {
     //echo $row['id']."<br>";
     echo $cols[$i][0];
     if($row['id']==$cols[$i][0])//id exists in database=> update
     {
        echo"<br> ".$cols[$i][4];
        mysqli_query($con,"UPDATE `TABLE 1` SET `price`=$cols[$i][4]  WHERE `id`=07");
        //echo $cols[$i][0];
        $flag=1;
     }
    }
    if($flag==0)//Add new record in to database
    {
       //code for insert
    } 
}

它不會更新價格

mysqli_query($ con,“更新TABLE 1設置price = $ cols [$ i] [4] WHERE id = 07”);

如果輸入,它將更新值,即價格,例如

mysqli_query($ con,“ UPDATE TABLE 1 SET price = 100 WHERE id = 07”);

$cols[$i][4]是一個數組,當我回顯它時,它給出正確的值,但是當對update語句應用相同的值時,它不接受它。

請嘗試以下查詢,

mysqli_query($con,"UPDATE `TABLE 1` SET `price`= '".$cols[$i][4]."'  WHERE `id`=07");

考慮到要插入到SQL語句(多維數組)中的變量的復雜性,不能像簡單變量( $var[0][1] vs $var )那樣將其包括在字符串中。 可以使用來連接字符串. 或用大括號{}包圍變量。

// using concatenation
$sql = "UPDATE `TABLE 1` SET price=".$cols[$i][4]." WHERE `id`=07";
// using curly braces
$sql = "UPDATE `TABLE 1` SET price={$cols[$i][4]} WHERE `id`=07";
mysqli_query( $con, $sql );

我還建議盡可能在表名中避免使用空格和關鍵字,這樣可以減少SQL錯誤的機會。

暫無
暫無

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

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