【发布时间】:2017-05-26 08:18:13
【问题描述】:
我正在尝试从 php 中的数组更新 2 列,rated 和 imdb_rating,以获取 mysql 表中的所有值。 $data 是一个二维数组。该数组是从 javascript 发布的。没有显示错误,一切似乎都很好,除了我的桌子上什么都没有发生;没有记录正在更新。 echo json_encode(0) 确实返回 0 但没有更新记录。我最担心的是die(mysqli_error($con)); 没有返回任何错误。我哪里做错了?
if($con){
$data=$_POST['dat'];
$count=sizeof($data);
for($i=0;$i<$count;$i++){
$sql="UPDATE `movies2` SET `rated`='$data[$i][2]' WHERE `movie_ID`='$data[$i][0]'";
$sql2="UPDATE `movies2` SET `imdb_rating`='$data[$i][1]' WHERE `movie_ID`='$data[$i][0]'";
$result=mysqli_query($con,$sql);
$result2=mysqli_query($con,$sql2);
}
if($result && $result2){
echo json_encode(0);
}
else{
echo json_encode(1);
die(mysqli_error($con));
}
}
【问题讨论】:
-
不要在查询中包含原始 $_POST 数据。阅读有关 SQL 注入的信息。您是否尝试回应您的查询?你会看到他们有什么问题。
-
如果您
echo$sql和$sql2,这些值是否按照您的预期正确填写?如果您在 phpMyAdmin 中复制/粘贴该查询,它会正确更新数据库吗? -
是的,sql 语句在 phpMyAdmin 中工作得很好
-
语法错误,不能写 "$data[$i][2]" 因为 "[2]" 被视为字符串,而不是数组索引。您需要编写 "{$data[$i][2]}" 但无论如何都不要构建这样的查询。请改用 PDO。
-
“sql 语句工作” - 你是 ECHO 那些查询还是只是手动在 phpMyAdmin 中编写?这有很大的不同。