dsh125986083 2017-02-19 21:38
浏览 37
已采纳

PHP查询不能使用bindParam,但查询本身可以正常工作

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?

  • 写回答

1条回答 默认 最新

  • doutun1875 2017-02-19 21:44
    关注

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 weditor无法连接模拟器Local server not started, start with?
  • ¥20 6-3 String类定义
  • ¥15 嵌入式--定时器使用
  • ¥15 基于OPENCV的人脸识别
  • ¥20 51单片机学习中的问题
  • ¥30 Windows Server 2016利用兩張網卡處理兩個不同網絡
  • ¥15 Python中knn问题
  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题