我的 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
SETprice
=$cols[$i][4] WHEREid
=07");
如果我输入它,它会更新值,即价格
mysqli_query($con,"UPDATE
TABLE 1
SETprice
=100 WHEREid
=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/