【发布时间】:2014-04-10 21:29:02
【问题描述】:
尝试使用 MySQLi 执行准备好的语句时出现以下错误。
非常感谢任何帮助确定我做错了什么。
致命错误:在 etc 中的非对象上调用成员函数 prepare()。
我使用此语句正确连接:
<?php
$DBHost = "localhost";
$DBUser = "xxxxxx";
$DBPass = "xxxxxx";
$DBName = "creati38_chicos";
$dbconn = new mysqli($DBHost, $DBUser, $DBPass, $DBName);
// check connection
if ($dbconn->connect_error) {
//echo $dbconn->connect_error;
die('Sorry, we are having some problems right now. Please check back later.');
}
else{
echo "You have connected Successfully";
}
?>
然后我使用这个语句:
<?php
if ((isset($_POST["update"])) && ($_POST["update"] == "Update Appliance")) {
$stmt = $mysqli->prepare("UPDATE appliances SET
category = ?,
make = ?,
model = ?,
description = ?,
price = ?
WHERE id = ?");
$stmt->bind_param('ssssdi',
$_POST['category'],
$_POST['make'],
$_POST['model'],
$_POST['description'],
$_POST['price'],
$_POST['id']);
$stmt->execute();
$stmt->close();
}
?>
【问题讨论】:
-
好吧,错误告诉你所有:
$mysqli不是一个对象。很可能您的连接无法建立或变量不存在,因为连接显然是在不同的脚本中设置的。实际上,您只是使用了错误的名称...改用$dbconn... -
好像两个文件不一样,你下面的代码中包含上面的吗?
标签: php