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");
你好 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");