我使用mysqli的prepare函数为我的数据库创建一个查询,但是即使我在同一页面中有很多请求工作,它仍然失败了。
我的查询如下:
if ($insert = $mysqli->prepare( "INSERT INTO table_name (id_user, token) VALUES (?, ?)")) {
// Do some cool stuff here
} else {
var_dump($mysqli->error);
var_dump($insert->error);
}
在执行期间,它进入else,输出为:
string(0) "" //var_dump($mysqli->error);
Notice: Trying to get property of non-object in // var_dump($insert->error);
我知道我的$ mysqli正在工作,所以我也在prepare语句中测试了这些字符串。他们都没有工作过。 (我在mysql / phpmyadmin中对它们进行了测试,它们工作正常)
"INSERT INTO `table_name` (`id_user`, `token`) VALUES (?, ?)"
"INSERT INTO `table_name` (`table_name`.`id_user`, `table_name`.`token`) VALUES (?, ?)"
'INSERT INTO `table_name` (`id_user`, `token`) VALUES (50, "random_token")'
有人可以帮助我解决这个小问题吗?
谢谢
答案 0 :(得分:1)
错误实际上是在抱怨$ insert没有被定义......这是有道理的,因为它正在击中你的其他声明。
Notice: Trying to get property of non-object in // var_dump($insert->error);
请注意您自己评论的错误,以及它实际抱怨的内容。您不应该在else语句
中引用$ insert变量答案 1 :(得分:-1)
我终于明白了。问题是我没有关闭以前的连接。其中一个已使用相同的名称 $ insert
我找到了可以找到此帖子的人的两个可能的修复程序。
修复1 - 关闭您的连接,这很简单
$connectionVariable->close();
修复2 - 以不同方式命名变量。虽然您应该首先执行修复1。我想我必须找到困难的方法。
P.S。感谢所有帮助过我的人