Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 由于未知原因返回致命错误的MySQLi查询_Php_Mysqli - Fatal编程技术网

Php 由于未知原因返回致命错误的MySQLi查询

Php 由于未知原因返回致命错误的MySQLi查询,php,mysqli,Php,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行,得出结论,这是由于上述准备失败,除了我不能为我的生活锻炼为什么失败,我已经通过了几页上列出的步骤,关于显示错误,检查连接等

所以,我刚刚完成了一个非常简单的脚本的基本代码,除了返回的脚本

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


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();
?>
不是有效的查询。您不应该引用参数placeholders,并且语句末尾不应该有分号(但不确定后者是否给出了实际错误)

该错误使
prepare
返回
FALSE
,它没有名为
bind_param()
的方法,该方法给出了您得到的确切错误消息

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

该错误使
prepare
返回
FALSE
,它没有名为
bind_param()
的方法,该方法给出了您得到的确切错误消息。

是否删除“”引号

$execute=$con->prepare(“插入
quoter
VALUES(?);”

是否删除上的“”引号


$execute=$con->prepare(“插入
quoter
VALUES(?);”

下面是Ben F的评论

将您的查询更改为

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

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

遵循
Ben F
的注释

将您的查询更改为

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

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

还有一个链接,只是为了让您的链接不感到孤独:修复了问题,问题是我有3个表字段,但我的SQL查询中只有2个参数,我添加了(quote,quoteby)值(?),现在它正在工作,很抱歉打扰大家,这完全出乎我的意料,因为我相信AUTO_INC意味着它将自动排除该表字段。这是否回答了您的问题?还有一个链接,只是为了让你的人不感到孤独:修复了问题,问题是我有3个表字段,但我的SQL查询中只有2个参数,我添加了(quote,quoteby)值(?),现在它工作了,很抱歉打扰大家,这完全出乎我的意料,因为我相信AUTO_INC意味着它将自动排除该表字段。这是否回答了您的问题?即使修复了上述错误(我在尝试使其工作时输入了这些错误),它仍然返回与$execute=$con->prepare完全相同的错误(“INSERT-INTO
quoter
VALUES(?)”;我真的不明白,我是直接从mysqli的php.net网站上了解到这一点的,所以这不会错吧所以,问题可能是这个表有3个字段,id quote和quoteby,但我只定义了2个。问题是id是AUTO_INC,所以我不明白为什么我必须插入它:抱歉,伙计们,我只是在学习mysqlien,即使在修复了上面的错误(我试图让它工作)之后,它仍然返回与$execute=$con->prepare完全相同的错误(“插入
quoter
值(?);我真的不明白,我是直接从mysqli的php.net网站上了解到这一点的,所以这不会错吧所以,问题可能是这个表有3个字段,id quote和quoteby,但我只定义了2个。问题是id是AUTO_INC,所以我不明白为什么我必须插入它:抱歉,伙计们,我只是在学习mysqlien,即使在修复了上面的错误(我试图让它工作)之后,它仍然返回与$execute=$con->prepare完全相同的错误(“插入
quoter
值(?);即使修复了上述错误(我在尝试使其工作时输入了这些错误),它仍然返回与$execute=$con->prepare完全相同的错误(“INSERT-INTO
quoter
VALUES(?)”;我想我在你发布这篇文章的同时评论了我的第一篇文章,不过谢谢你的帖子,几秒钟之前,你会给我更多的帮助。我想我在你发布这篇文章的同时评论了我的第一篇文章,谢谢你的帖子,几秒钟之前,你会给我更多的帮助。
$execute = $con->prepare("INSERT INTO `quoter` (qutote, quoteby) VALUES (?, ?)");