2

私の問題が何であるかわかりません。次の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

助けてくれてどうもありがとう!

4

1 に答える 1

6

実行が失敗したときに例外をスローするように PDO を設定する

$db = new PDO(DB_INFO, DB_USER, DB_PASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
于 2012-07-01T03:57:42.217 に答える