PHP PDO 不插入新记录

标签 php mysql database pdo prepared-statement

我不明白我的问题似乎是什么。 我得到了以下 PHP 代码:

include_once 'db.inc.php';
    try 
    {
        $db = new PDO(DB_INFO, DB_USER, DB_PASS);
    } 
    catch(PDOException $e) 
    {
        echo 'Connection failed: ', $e->getMessage();
        exit();
    }

    $title = htmlentities($_POST['title']);
    $entry = htmlentities($_POST['entry']);

    $sql = "INSERT INTO entries (title, entry) VALUES (?, ?)"; 
    $stmt = $db->prepare($sql); 
    $stmt->execute(array($title, $entry)); 
    $stmt->closeCursor();

我没有收到任何类型的错误,脚本似乎已经运行,但是它没有向数据库中插入任何内容。 无论我尝试什么,它都无济于事。


编辑

已排序 :) 我不知道 $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

它给了我“未捕获的异常‘PDOException’,消息为‘SQLSTATE[3D000]:无效目录名称:1046 未选择数据库’”。

原来我在配置文件中写了 mysql:host=127.0.0.1;db_name=test1 而不是 mysql:host=127.0.0.1;dbname=test1

非常感谢您的帮助!

最佳答案

设置PDO在执行失败时抛出异常

$db = new PDO(DB_INFO, DB_USER, DB_PASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

关于PHP PDO 不插入新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11279385/

相关文章:

php - Laravel5 - 如何正确编写搜索查询字符串的路由?

mysql - MySQL 上的 LIKE 查询有多慢? (自定义字段相关)

database - 不知道类型时将数据存储在数据库中的最佳方法

java - 从android中的外部存储访问或打开数据库

php mysql 查询 fatal error

MySQL 错误代码 : 1030Got error -1 from storage engine; I've tried to delete data from my database

php - 服务器文件中删除了所有换行符

php - 如何在 while 循环中只允许每个名称中的一个?

php - 发送带有纯文本回退的 HTML 时事通讯

php - 简单的 SELECT、GROUP、ORDER BY 查询未按预期运行