MySQLi Query由于未知原因返回致命错误

时间:2013-06-02 11:48:05

标签: mysqli

所以,我刚刚编写了一个非常简单的脚本编写基础,我正在处理它除了它正在返回

Fatal error: Call to a member function bind_param() on a non-object in
             C:\wamp\www\gamepal\quoter\includes\function.php on line 26

现在我通过第26行检查并得出结论,由于上述准备失败,除了我不能为我的生活锻炼为什么它失败,我已经完成了几页上列出的步骤围绕显示错误,检查连接等,它没有让我更接近解决问题。如果有人能够阐明为什么以下代码失败,那将非常感激!

我将下面的代码删除到最低限度,直到我能够运行,如果有人能够看到为什么bind_param失败了,如果你能指出它并且可能有一个参考解释那么我将不胜感激不要再做了,谢谢你。

的config.php;

<?php
$host = 'localhost';
$username= 'root';
$password = '';
$db = 'testdb';

$con = mysqli_connect($host, $username, $password, $db);
   if ( !$con ) {
      die('Unable to connect to database');
   }

   mysqli_select_db($con,"testdb") or die("Unable to connect to testdb");
?>

function.php;

include_once "config.php";
   $quote = $_POST['quote'];
   $quoteby = $_POST['quoteby'];

      $execute = $con->prepare("INSERT INTO `quoter` VALUES (?, ?)");
         $execute->bind_param('ss', $quote, $quoteby);
            $execute->execute();
         $execute->close();
?>

3 个答案:

答案 0 :(得分:4)

$execute = $con->prepare("INSERT INTO `quoter` VALUES ('?', '?');");

不是有效查询。你不应该引用参数占位符,并且在语句的末尾不应该有分号(不确定后者是否给出了实际的错误)

$execute = $con->prepare("INSERT INTO `quoter` VALUES (?, ?)");

该错误使prepare返回FALSE,其中没有名为bind_param()的方法,它会提供您收到的确切错误消息。

答案 1 :(得分:1)

删除''引用?

$ execute = $ con&gt; prepare(“INSERT INTO quoter VALUES(?,?);”);

答案 2 :(得分:0)

继续Ben F的评论。

将您的查询更改为

$execute = $con->prepare("INSERT INTO `quoter` (qutote, quoteby) VALUES (?, ?)");

这样,您在插入行时无需指定id值。