これは私を夢中にさせています...誰かが私がここで見逃していることを指摘できることを願っています.
クライアントからの問い合わせを保持する mysql テーブルがあり、各問い合わせは複数の問題を保持できます。未解決の問題がある場合、問い合わせをクローズできないようにしたい。
これを行うには、if ステートメントを使用して status の投稿された値を確認します。これが close に設定されている場合は COUNT を実行します。結果が OPEN の場合はエラーを表示し、それ以外の場合は更新を続行します。
ただし、次のエラーが発生します-致命的なエラー:非オブジェクトでメンバー関数 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']);
}
}