Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 致命错误:更新时对非对象调用成员函数bind_param()_Php_Mysql - Fatal编程技术网

Php 致命错误:更新时对非对象调用成员函数bind_param()

Php 致命错误:更新时对非对象调用成员函数bind_param(),php,mysql,Php,Mysql,这让我快发疯了。。。希望有人能指出我在这里遗漏了什么 我有一个mysql表,可以容纳客户查询,每个查询可以容纳多个问题。 我希望这样,如果有任何悬而未决的问题,查询就无法结束 为此,我使用if语句检查状态的过账值,如果设置为关闭,则进行计数。。如果打开任何结果,则显示错误,否则继续更新 但是,我得到了以下错误-致命错误:对非对象调用成员函数bind_param() 我试着回显每个变量,而不是更新,它们都显示正确 这是密码 $id=$_SESSION['SESS_ENQID']; $enqdat

这让我快发疯了。。。希望有人能指出我在这里遗漏了什么

我有一个mysql表,可以容纳客户查询,每个查询可以容纳多个问题。 我希望这样,如果有任何悬而未决的问题,查询就无法结束

为此,我使用if语句检查状态的过账值,如果设置为关闭,则进行计数。。如果打开任何结果,则显示错误,否则继续更新

但是,我得到了以下错误-致命错误:对非对象调用成员函数bind_param()

我试着回显每个变量,而不是更新,它们都显示正确

这是密码

$id=$_SESSION['SESS_ENQID'];

$enqdate=$_POST['enqdate'];
$enqsrc=$_POST['enqsrc'];
$notes=$_POST['notes'];
$enqstat=$_POST['enqstat'];

if($enqstat == 'CLOSED'){
$qry1 = "SELECT COUNT(*)FROM enqissuetbl WHERE enqstat = 'OPEN' AND enqid = ?"; 
$stmt = $mysqli->prepare($qry1);
$stmt->bind_param('i',$id);
$stmt->execute();
$stmt->bind_result($count);
$stmt->fetch();

if($count >= '1')
{
printf("ERROR: All associated issues must be in a closed state before you can close an enquiry");
}
elseif($count == '0')
{
$qry2 = "UPDATE enqtbl 
SET enqdate = ?, enqsrc = ?, notes = ?, enqstat = ?
WHERE enqtbl.enqid = ? ";

$stmt2 = $mysqli->prepare($qry2);
$stmt2->bind_param('ssssi', $enqdate, $enqsrc, $notes, $enqstat, $id);

$stmt2->execute();
$stmt2->close();

printf("Enquiry successfully updated.");
unset($_SESSION['SESS_ENQID']); 
}
}

最后弄明白了,这两个查询本身都很好,问题只发生在它们嵌套的地方。。。添加$stmt->store_result();外部查询解决了它。

侧边栏中有太多“相关”问题。。。他们中至少有一半会有和你相同的答案。在提问之前,请先搜索一下。我已经浏览了一遍,但没有发现我的问题,让我感到困惑的是,如果$enstat不等于close,我会在上面使用相同的更新代码(完全相同)。。。与中一样,用户正在更新记录,但没有关闭它。这与上面失败的代码完全相同。您是否查阅了PHP手册?如果在查询准备过程中发生错误,则
prepare
返回
false
,并提供了如何查看实际错误的示例: