user996459
user996459

Reputation: 23

PHP PDO Doesn't insert new records

I do not understand what my problem seem to be. I got the following PHP code:

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();

I do not receive any error of any kind and the script seem to have worked however it does not insert anything into the database. No matter what I try it doesn't do anything.


edit

Sorted :) I didn't know about $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);.

It gave me "Uncaught exception 'PDOException' with message 'SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected'".

Turns out I wrote mysql:host=127.0.0.1;db_name=test1 instead of mysql:host=127.0.0.1;dbname=test1 in my config file.

Thank you very much for help!

Upvotes: 2

Views: 2761

Answers (1)

user1440875
user1440875

Reputation:

Set PDO to throw exceptions when execution fails

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

Upvotes: 6

Related Questions