PHP PDO 不插入新记录

use*_*459 2 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();
Run Code Online (Sandbox Code Playgroud)

我没有收到任何类型的错误,脚本似乎已经工作,但是它没有在数据库中插入任何内容。无论我尝试什么,它都没有任何作用。


编辑

排序 :) 我不知道$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在我的配置文件中。

非常感谢您的帮助!

P M*_*P M 5

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

$db = new PDO(DB_INFO, DB_USER, DB_PASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Run Code Online (Sandbox Code Playgroud)