PHP查询不bindParam工作,但查询不工作本身

问题描述:

我试图插入信息insto一个MySQL数据库和我得到的WSOD与此错误:PHP查询不bindParam工作,但查询不工作本身

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

这是代码:

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

我试着剥离一切是检查数据库连接的工作,它的作用。

我已经试过手动输入查询到phpMyAdmin的取代问号的文本,它的工作。

问题在哪里?

+3

您需要使用' - >准备()''不 - >查询()'使用' - > bindParam()'。 ['PDO :: query()在单个函数调用中执行SQL语句](http://php.net/manual/en/pdo.query.php)vs ['PDO :: prepare准备执行语句并返回一个语句对象](http://php.net/manual/en/pdo.prepare.php) – Sean

尝试print_r($conectar1->errorInfo());

还利用prepare()代替query()使用bindParam()小号

+0

就是这样:我忘了用prepare而不是query!谢谢!几分钟后,我会接受答案,当它让我这样做。 :) – Rosamunda