bind_param 不工作(在非对象上)mysqli 准备语句

bind_param not working (on a non-object) mysqli prepared statement

到目前为止,我已经阅读了大约 15 篇关于此类问题的帖子 none,其中对我有所帮助。

我有以下代码:

$stmt3 = $mysqli->prepare("SELECT cc.name, cc.company, cc.email FROM (`case_contacts` cc) WHERE cc.case_id=? AND cc.end_date IS NULL");
if (is_object($stmt3)) {
    $stmt3 -> bind_param("i", $case_id);
} else {
    die('Connection issue');
}
$stmt3 -> execute();
$stmt3 -> bind_result($name, $company, $email);
while ($stmt3->fetch()) {

当我执行时它会提示 "Connection issue"。不过就在$stmt3之前我可以var_dump$mysqli很开心

我已经将查询手动输入到 phpmyadmin 和在线查询检查器中,并且都确认它是有效的。

我检查了用户的权限,都没有问题。事实上,我正在重写从 mysql 到 mysqli 的查询,并希望使用准备好的语句。所以数据库用户是一样的。我对其他比这更复杂的准备好的陈述没有任何问题,所以我真的对我所缺少的东西感到茫然。

我什至过度使用了语句中的 '`' 引号换行符,因为我知道我应该在每个查询中使用它!

任何建议、调试技巧都会很棒。我环顾四周,发现没有提供输出。

mysqli_stmt::prepare ( string $query ) return TRUEFALSE 阅读更多:

http://php.net/manual/en/mysqli.prepare.php

您可以使用这个例子:

<?php

$mysqli = mysqli_connect('localhost', 'root', 'admin', 'test');

$case_id = 603;

$sentence =  $mysqli->stmt_init();
if($sentence->prepare("SELECT name, company, email FROM case_contacts WHERE case_id = ? AND end_date IS NULL")) {

    $sentence->bind_param("i", $case_id);
    $sentence->execute();
    $sentence->bind_result($name, $company, $email);

    while ($sentence->fetch()) {
        echo $name . ' - ' . $company . ' - ' . $email;
    }   
}