这个问题在这里已有答案:
我正在努力做一个准备好的声明。我的代码如下。我使用PHP和MySQLi。我收到此错误消息:
致命错误:在/ path / path /中的非对象上调用成员函数prepare()
$sql = "INSERT INTO person(name, $lastname)
VALUES (?, ?)";
$stmt = $sql->prepare($sql);
$stmt->bind_param("ss", $name, $lastname);
$name= '?';
$lastname='?';
$stmt->execute();
错误消息指向此行:
$stmt = $sql->prepare($sql);
有什么问题?
你用一个字符串来踩踏你的数据库连接,然后一切都变得狂暴。修复:
$stmt = $db->prepare("INSERT INTO person(name, lastname) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $lastname);
$name= '?';
$lastname='?';
$stmt->execute();
这里$db
是你的数据库连接,无论用new mysqli(...)
创建的地方。