当前位置: 首页 > 知识库问答 >
问题:

PDO正在更新多个记录

后化
2023-03-14

我知道以前有人问过这个问题,我已经阅读了很多答案,现在正在研究其中一个答案,但是我需要以下代码的帮助。

<?php

$title = $_POST['title'];
$description = $_POST['description'];
$item_name = $_POST['item_name'];

$A = count($item_name);

include ("connection.php");

try {

    $set_details = "UPDATE images
                    SET title = :title,
                    description = :description,
                    WHERE item_name = :item_name";


$STH = $conn->prepare($set_details);

    $i = 0;
    while($i < $A) {
        $STH->bindParam(':title', $title[$i]);
        $STH->bindParam(':description', $description[$i]);
        $STH->bindParam(':item_name', $item_name[$i]);
        $STH->execute();
        $i++;
    }
}
catch(PDOException $e) {  
    echo "I'm sorry, but there was an error updating the database.";  
    file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
}


?>

我在执行时没有收到任何错误,也没有任何内容提交到mysql表,如果你发现了什么,请告诉我,或者如果有更好的方法,请你给我指一个教程,我还没有太多的PDO或多行更新。

提前谢谢。

致山姆:

print_r($STH->errorInfo());

产出为:

Array ( [0] => 42000 [1] => 1064 [2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE item_name = '27'' at line 4 )

共有1个答案

傅经业
2023-03-14

您在: description后面有一个额外的逗号,应该是:

"UPDATE images
 SET title = :title,
 description = :description
 WHERE item_name = :item_name"
 类似资料:
  • 问题内容: 我在某些列中有一个带有嵌套表的oracle表。现在,我需要能够更新每个嵌套表,主表中每个记录中的所有记录。这是如何完成的?我尝试过的任何一种方法,都会收到有关无法在该视图上执行更新或单行子查询返回多个行的错误。 这是一个例子来说明。我可以运行这样的更新: 但是在这种情况下,table子句是在单行的单个嵌套表上执行的。如果您不只是想要等于2的entity.uidn,将如何执行这样的更新?

  • 问题内容: 我需要在一个请求中进行多次更新。 在我有: 因此需要进行更改。 这是我的序列化器代码: 我试图添加: 和 但这不起作用。如何更改此代码以进行多次更新。我的json请求 问题答案: 这是您请求的CreateMixins或UpdateMixins的示例。 ======================查看========================== ====== ==========

  • 非常类似于使用PDO数组更新多个MySQL表列。 但是我使用了一个复杂的形式 更新只是给我一个没有错误的空白页??? 注意:使用了MySQLi,工作正常,只是更新到了PDO。 $data2返回了正确的数组。 这可能是订单吗?IE输出必须匹配列顺序? 分析了使用带有PDO的数组和https://guwii.com/bytes/update-multiple-database-columns-usin

  • 我想更新值。如何在查询生成器中执行此操作?

  • 我正在尝试将所有MySQL连接从旧的MySQL_查询切换到PDO。我试图使用不同的数组更新MySQL表的多个行和列,收到以下错误: [42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取正确的语法,以便在第1行中使用接近(accnt、car、radio、misc)值('admin'、'300.00'、'400.00'、'10.00'),其中

  • 问题内容: 从PHP 5.3版开始,已对驱动程序进行了补充。它引入了对多个查询的支持。 但是,如果传递了多个查询,我无法弄清楚如何获得两个结果集。这两个查询都已执行,不可能是第二个查询刚刚被转储。 返回值: 问题答案: 原来,您需要使用。 这将返回第二个查询的结果。 这是一个有点奇怪的实现。如果多查询语句仅将两个结果集返回在一个数组下,那肯定会更容易。但是,优点是此实现允许使用不同的FETCH样式