Rosamunda
Rosamunda

Reputation: 14990

PHP query not working with bindParam but the query does work in itself

I'm trying to insert information insto a mySQL database and I get the WSOD and this error:

PHP Fatal error: Call to a member function bindParam() on a non-object ...

This is the code:

try {
        $conectar1 = new PDO('mysql:host='.HOST.'; dbname='.DATABASE.'; charset=utf8', USER, PASS); 

    $guardarPost = $conectar1->query("
        INSERT INTO foro 
        (userID, estadoPost, asuntoPost, postUltimo, datosPost)
        VALUES (?, ?, ?, ?, ?)
    ");
    $guardarPost->bindParam(1, $userID); <============ ERROR LINE
    $guardarPost->bindParam(2, $estadoMensaje);
    $guardarPost->bindParam(3, $asuntoPost);
    $guardarPost->bindParam(4, $fechaMensaje);
    $guardarPost->bindParam(5, $datosPost);
    $ok = $guardarPost->execute();
} catch (PDOException $e) {
    echo "Error ".$e->getMessage();
}

I've tried stripping everything to check is the DB connection work, and it does.

I've tried entering the query manually into phpMyAdmin replacing the question marks for the text, and it does work.

Where's the problem?

Upvotes: 0

Views: 44

Answers (1)

Abdul Rafay
Abdul Rafay

Reputation: 312

Try print_r($conectar1->errorInfo());

also use prepare() instead of query() to use bindParam()s

Upvotes: 1

Related Questions