当前位置: 首页 > 面试题库 >

使用PDO和MySQL更新查询

宓英哲
2023-03-14
问题内容

我试图用PDO编写更新查询,但我无法执行代码?

try {
 $conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
$conn->exec("SET CHARACTER SET utf8");      // Sets encoding UTF-8
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

 $sql = "UPDATE `access_users`   
      (`contact_first_name`,`contact_surname`,`contact_email`,`telephone`) 
      VALUES (:firstname, :surname, :telephone, :email);
      ";



 $statement = $conn->prepare($sql);
 $statement->bindValue(":firstname", $firstname);
 $statement->bindValue(":surname", $surname);
 $statement->bindValue(":telephone", $telephone);
 $statement->bindValue(":email", $email);
 $count = $statement->execute();

  $conn = null;        // Disconnect
}
catch(PDOException $e) {
  echo $e->getMessage();
}

问题答案:
  1. 您的UPDATE语法错误
  2. 您可能打算更新一行而不是全部更新,因此您必须使用WHERE子句来定位特定行

更改

UPDATE `access_users`   
      (`contact_first_name`,`contact_surname`,`contact_email`,`telephone`) 
      VALUES (:firstname, :surname, :telephone, :email)

UPDATE `access_users`   
   SET `contact_first_name` = :firstname,
       `contact_surname` = :surname,
       `contact_email` = :email,
       `telephone` = :telephone 
 WHERE `user_id` = :user_id -- you probably have some sort of id


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

  • 问题内容: 这是我到目前为止阅读的内容: 由于MySQL的本机准备绕过了查询缓存,因此PDO的准备仿真在性能上更好。 MySQL的本机准备更好地提高了安全性(防止SQL注入)。 MySQL的本机准备更好地用于错误报告。 我不知道这些陈述的真实性。在选择MySQL接口时,我最大的担心是防止SQL注入。第二个问题是性能。 我的应用程序当前使用过程MySQLi(没有准备好的语句),并且大量利用了查询缓存

  • 这是我到目前为止读到的关于的内容: PDO的prepare仿真性能更好,因为MySQL的本机prepare绕过查询缓存。 MySQL的本机prepare在安全性方面更好(防止SQL注入)。 MySQL的本机prepare更适合错误报告。 我不知道这些说法有多真实了。我在选择MySQL接口时最关心的是防止SQL注入。第二个关注点是业绩。 我的应用程序目前使用过程式MySQLi(没有准备好的语句),并

  • 问题内容: 表架构 表名: 行:,, 我的查询模拟将一个文件夹移动到另一个文件夹,并使用IN(?)接受一个数组。 如果不存在具有相同parentId和名称的文件夹,我希望更新仅“移动”文件夹。您在任何普通文件系统下期望的行为。 因此,例如: 将会是一个查询,不检查任何有关parentId和名称的信息…但是如何使左联接起作用。 这是我尝试过的..完全不起作用。 问题答案: 所以,你要只有当目标父文件

  • 我正在尝试更新我的jpa存储库 这是我控制器的一部分: 服务器还说: SQL错误:0,SqlState:S1009 2017-06-18 12:51:15.778错误10388---[nio-8080-exec-4]O.H.Engine.jdbc.spi.SQLExCeptionHelper:无法使用executeQuery()发出数据操作语句。2017-06-18 12:51:15.844错误1

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