【问题标题】:prepare statement give error准备语句给出错误
【发布时间】:2017-01-04 21:29:48
【问题描述】:

我的代码有问题吗,它看起来与 php 页面上的示例一模一样,但它给了我这个错误Fatal error: Call to a member function bindParam() on a non-object in /Applications/XAMPP/xamppfiles/htdocs/videosharing/index.php on line 68

$hi = 'hi';
$limit = 4;
$isi = 1;
$query = "SELECT `videoname`,`username`,`videourl`,`uploaddate`,`duration`,`views`,`tags` FROM `videolist` WHERE `tags` = :atagz ";
$stmt = $connection->prepare($query);
$stmt->bindParam(':atagz',$hi);

【问题讨论】:

  • 你的连接好吗?
  • 连接良好,使用标准方法没有任何问题
  • 告诉我们你在哪里启动 $connection 对象; 99% 确定您的错误存在。
  • $connection 来自 db.php require('db.php');然后我添加全局 $connection;里面的 db.php = $connection = new mysqli('localhost','root','','videosharingdatabase');

标签: php mysql pdo


【解决方案1】:

您的连接可能很好(否则,您很快就会遇到不同的错误)。

如果错误是"Fatal error: Call to a member function bindParam() on a non-object",则$stmt 不是对象。换句话说,您的prepare() 呼叫失败。根据the documentation for prepare(),当数据库无法准备语句时会发生这种情况。

报告这些错误是我认为 PDO 不足的领域之一。您可以通过以下方式获取有关错误的更多信息:

var_dump($connection->errorInfo());

最可能的原因是属性或表名拼写错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-10
    • 1970-01-01
    • 2014-06-18
    • 2014-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多