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的取代问号的文本,它的工作。
问题在哪里?
答
尝试print_r($conectar1->errorInfo())
;
还利用prepare()
代替query()
使用bindParam()
小号
+0
就是这样:我忘了用prepare而不是query!谢谢!几分钟后,我会接受答案,当它让我这样做。 :) – Rosamunda
您需要使用' - >准备()''不 - >查询()'使用' - > bindParam()'。 ['PDO :: query()在单个函数调用中执行SQL语句](http://php.net/manual/en/pdo.query.php)vs ['PDO :: prepare准备执行语句并返回一个语句对象](http://php.net/manual/en/pdo.prepare.php) – Sean