2017-02-19 175 views
0

我試圖插入信息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

回答

1

嘗試print_r($conectar1->errorInfo());

還利用prepare()代替query()使用bindParam()小號

+0

就是這樣:我忘了用prepare而不是query!謝謝!幾分鐘後,我會接受答案,當它讓我這樣做。 :) – Rosamunda