PHP/PDO 连接到 Mysql,但查询似乎没有执行

PHP/PDO Connecting to Mysql, but query does not appear to be executed

你好 Stack Overflow! 我正在尝试连接到数据库并根据发送到 Web 服务器的信息更新一组特定的记录。当我执行 PHP 页面并得到没有错误的结果时,数据库没有任何更新。好像查询甚至没有执行。我也可以手动执行它,它像您期望的那样工作正常。 PDO 驱动程序连接已正确设置且未声明错误。

我的代码:

(连接信息以及 table 名称在单独的 database.php 文件中声明。这只是与故障部分交互的代码部分。)

<? php
include "database.php";
$conn = new MySQLi($host, $username, $password, $db_name);

if ($conn - > connect_error) {
  die("Connection failed: ".$conn - > connect_error);
}
$conp = new PDO("mysql:host=$host;port=3306;dbname=$db_name", $username, $password);
$conp - > setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conp - > setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
    try {
      $sql = null;
      $sql1 = $conp - > prepare("UPDATE `".$tbl_bans_name.
        "` SET `resolved`='1' WHERE `Date`=':date' AND `Reason`=':reason'");
      $sql1 - > bindParam(':date', $date);
      $sql1 - > bindParam(':reason', $reason);
      if ($sql1 - > execute()) {
        echo "good";
      }
      $sql1 = null;
    } catch (PDOException $e) {
      print_r($e);
    }
    //$execute = Mysqli_query($conn, $sql1);
    //mysqli_close($conn);

?>

感谢任何帮助!我将不胜感激,因为在过去的几个小时里这个问题一直困扰着我。

我认为您应该通过删除 :date & :reason 周围的 ' 来更正此行 - 如下所示:

 "` SET `resolved`='1' WHERE `Date`=:date AND `Reason`=:reason");