php - PDO更新语句的正确写法

标签 php mysql pdo

这是编写 PDO 更新语句的正确方法吗?我基于我在网上看到的一个教程,但它似乎在被 AJAX 触发时根本没有做任何事情(即使 AJAX 请求在控制台中被记录为成功,也没有对数据库进行更新):

$duedate = $_POST["duedate"];
$status = $_POST["status"];
$id = $_POST["id"];

$sql = "UPDATE pm_schedule SET duedate=?, status=? WHERE id=?";
$q = $pdo->prepare($sql);
$q->execute(array($duedate,$status,$id));

最佳答案

是的,它是正确的,但你需要告诉 PDO 在出错时引发错误。
所以,让你的连接代码像这样:

$dsn = "mysql:host=$host;dbname=$db;charset=utf8";
$opt = array(
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
$pdo = new PDO($dsn, $user, $pass, $opt);

并确保您可以看到 PHP 错误。这样,您就会知道出了什么问题。

关于php - PDO更新语句的正确写法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14747584/

相关文章:

mysql - 空文本是否占用数据库空间

php - 多表 mysql/php 查询,两个输出到一个数组

php - Virtual Box MySQL Server VM 不断超时

php 5.2,自动加载尝试在主机上加载 PDO.php,在本地工作正常

php - 使用 MySQL 按 url 对反馈结果进行排序

php - 通过 SESSION 链接用户

php - 重定向回 l​​aravel 5.3 中请求的页面

php - 如何在 PHP 中获取 View 中可用的所有变量?

php - JOIN 和 COUNT 只输出一个结果

php - 错误 : Access denied for user 'www-data' @'localhost'