首页 > 解决方案 > PHP mysqli 查询 foreach

问题描述

从 mysql 更新到 MySQLi 后,这个小脚本不会更新数据库。

include $dirlib . 'dbo.php';
if(!empty($_GET['list_vid'])) {
foreach ($_GET['list_vid'] as $position => $item) {
        $query  = mysqli_query($sql[] = "UPDATE $dbmov SET sort = '$position' WHERE id = $item");
        $result = mysqli_query($GLOBALS["___mysqli_ston"], $query);

err('排序视频'));

标签: phpmysqli

解决方案


改为运行准备好的语句,您可以多次执行该语句。它更简单,更安全。

您当前的问题是您第一次执行了一个数组,而第二次执行了一个对象 - 不太像那样工作。

$query = "UPDATE $dbmov SET sort = ? WHERE id = ?";
$stmt = $GLOBALS["___mysqli_ston"]->prepare($query);
$stmt->bind_param("ss", $position, $item);
foreach ($_GET['list_vid'] as $position => $item) {
    $stmt->execute();
}  
$stmt->close();

推荐阅读