可能重复:
Call to a member function bind_param() on a non-object
我收到以下错误:
Call to a member function bind_param() on a non-object
这是准备好的声明:
include('/path/to/connection/variable.php');
此文件已经过验证,只是创建了一个mysqli类的实例,例如:
$mysqli = new mysqli("localhost", "user", "password", "db");
所以我知道这不是问题...
$stmt = $mysqli->prepare("INSERT INTO `users` VALUES (?,?,?,?,?,?,?)");
$stmt->bind_param("sssssss", $firstname, $lastname, $email, $subscribed, $signup_date, $unsubscribe_date, $signup_source);
$stmt->execute();
$stmt->close();
$mysqli->close();
变量类型如下:
$firstname = string
$lastname = string
$email = string
$subscribed = char (Y or N)
$signup_date = DATE - date('Y-m-d')
$unsubscribe_date = DATE - 0000-00-00 Entered Initially
$signup_source = string
我试图找到所有常见的嫌疑人,检查连接,基本上我写了一个单独的SELECT语句,它的工作原理。 “USERS”是一张有效的表格。连接的权限是root,因此不是问题。我已经在“s”和“d”之间切换了日期的类型,甚至尝试了所有虚拟变量 - 没有区别。
我希望这很简单 - 因为我现在在过去的一小时里一直在绞尽脑汁,我看不出上面的陈述有什么不妥。
答案 0 :(得分:4)
这通常意味着您的->prepare()
调用失败,并返回一个布尔值FALSE而不是语句对象。检查一下:
$stmt = $mysqli->prepare("INSERT INTO `users` VALUES (?,?,?,?,?,?,?)") or die($mysqli::error);
答案 1 :(得分:1)
在回答您的问题时,您可以执行以下操作:
INSERT INTO tableName (column1, column2, column3,...)
VALUES (value1, value2, value3,...)