在我的本地/开发环境中,MySQLi查询执行正常.但是,当我在我的Web主机环境中上传它时,我收到此错误:
致命错误:在...中的非对象上调用成员函数bind_param()
这是代码:
global $mysqli;
$stmt = $mysqli->prepare("SELECT id, description FROM tbl_page_answer_category WHERE cur_own_id = ?");
$stmt->bind_param('i', $cur_id);
$stmt->execute();
$stmt->bind_result($uid, $desc);
Run Code Online (Sandbox Code Playgroud)
为了检查我的查询,我试图通过控制面板phpMyAdmin执行查询,结果是OK.
好的,所以我正在尝试更新博客条目,当我尝试运行脚本时,我正在调用非对象上的成员函数bind_param().我做了大量的研究,看看我是否可以自己解决,但我必须遗漏一些东西.
<?php
$stmt = $mysqli->prepare("UPDATE blogentries SET
headline = ?,
image = ?,
caption = ?,
article = ?
WHERE id = ?");
$stmt->bind_param('ssssi',
$_POST['headline'],
$_POST['image'],
$_POST['caption'],
$_POST['article'],
$_POST['id']);
$stmt->execute();
$stmt->close();
?>
Run Code Online (Sandbox Code Playgroud)
提前致谢,
奥斯丁
更新:这是db connect
我为调试目的添加了额外的$ mysqli连接,即使没有它也会发生错误.
我一直在讨论这个MySQL查询.
假设我有这个:
$add = "INSERT INTO books (title) VALUES(?)";
if ($stmt = $mysqli->prepare($add)) {
$arr = array($title);
foreach ($arr as $value) {
echo var_dump($value);
}
$stmt->bind_param("s", $title);
Run Code Online (Sandbox Code Playgroud)
有了foreach- > var_dump:
string 'Medieval Times (History)' (length=24)
int 1422843281
int 1420844341
string '127.0.0.1' (length=9)
string 'MY_EMAIL@gmail.com' (length=22)
string '' (length=0)
int 1420844805
int 6
int 3
int 1
int 0
int 0
int 1
int 1
int 1
int 1
Run Code Online (Sandbox Code Playgroud)
好吧,当它到达这一行时它会停止并且我收到此错误:
Fatal error: Call to a member function bind_param() …
我一直被这个错误困扰,请帮帮我这是我的代码 PHP 致命错误:调用成员函数 bind_param()
$statement= $db->prepare("insert into uploaddetails(idnum,title,desc,author,tags,title) values(?,?,?,?,?,?)");
$id='NULL';
$title=$_POST['title'];
$description=$_POST['description'];
$author=$_POST['author'];
$tags=$_POST['tags'];
$file= basename($_FILES["fileToUpload"]["name"]);
$statement->bind_param( 'isssss', $id,$title, $description,$author,$tags,$file);
$statement->execute();
$db->close();
$statement->close();
Run Code Online (Sandbox Code Playgroud)