0

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

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 失败,如果你能指出它并可能有参考解释,我将不胜感激以后再做一次,先谢谢你了。

配置.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");
?>

函数.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();
?>
4

3 回答 3

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

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

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

错误导致preparereturn FALSE,它没有调用方法bind_param(),它给出了你得到的确切错误消息。

于 2013-06-02T11:52:50.450 回答
1

删除''报价?

$execute = $con->prepare("INSERT INTO quoterVALUES (?, ?);");

于 2013-06-02T11:53:08.660 回答
0

继从Ben F的评论。

将您的查询更改为

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

这样您就不需要在id插入行时指定值。

于 2013-06-02T12:26:09.153 回答