PHP 通过多维数组的值更新表

标签 php mysql

我的 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,"UPDATE TABLE 1 SET price=$cols[$i][4] WHERE id=07");

如果我输入它,它会更新值,即价格

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

$cols[$i][4] 是一个数组,当我回显它时它会给出正确的值,但是当相同的值应用于更新语句时它不会接受它。

最佳答案

鉴于您插入 SQL 语句中的变量(多维数组)的复杂性,您不能像简单变量那样将其包含在字符串中 ($var[0][1]$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 中出现错误的机会。

关于PHP 通过多维数组的值更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19859955/

相关文章:

mysql - 选择字符串不存在的行

php - 在表单的隐藏字段中存储方法

PHP rawurlencode 不等于 JavaScripts 转义!为什么?

php - 查询获取树上的类别和产品

php - 显示资源 ID# - PHP 和 MySQL

mysql - 什么会降低 MySqls 的性能?

mysql - 在 golang 的 time.time 中从 mysql 检索日期时间

php - 显示大量数据的最佳方式

mysql - 错误 2005 (HY000) : Unknown MySQL server host '[us-cdbr-azure-sat-02.cloudapp.net]' (0)

mysql - 根据另一个表中存在的记录设置标志值