所以,我刚刚完成了我正在处理的一个非常简单的脚本的基础编码,除了它返回
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();
?>
$execute = $con->prepare("INSERT INTO `quoter` VALUES ('?', '?');");
不是有效的查询。您不应该引用参数占位符,并且语句末尾不应该有分号(不确定后者是否给出了实际错误(
$execute = $con->prepare("INSERT INTO `quoter` VALUES (?, ?)");
该错误使prepare
返回FALSE
,它没有称为bind_param()
的方法,它给出了您收到的确切错误消息。
删除 '' 引号 ?
$execute = $con->准备("插入到quoter
值 (?, ?(;"(;
接Ben F
的评论。
将查询更改为
$execute = $con->prepare("INSERT INTO `quoter` (qutote, quoteby) VALUES (?, ?)");
这样,您无需在插入行时指定id
值。