遇到MYSQL查询问题

时间:2011-11-09 21:34:36

标签: php mysql mysqli prepared-statement

我的函数获取$status(0-error,1-success),$err_id(db中的错误消息的id)和$field(输入字段的名称)变量并获取错误来自db的消息,给定的vars。

在每个步骤中尝试die()以检测错误发生的位置,并在功能die($status.$err_id.$field);之后放置err。没有成功。

用netbeans支付。标记调试在函数中停止的行

$ msg始终为空。无法从db获取它。 php错误日志中没有错误。可能是我的代码有错误?请看一下。

function err($status, $err_id = 0, $field = 0)
{
        global $db;
        if ($status == 0) {
                $stmt = $db->prepare("SELECT msg FROM err_msgs WHERE field = ? AND id= ?") or die(htmlspecialchars($db->error));
                $stmt->bind_param("si", $field, $err_id) or die(htmlspecialchars($stmt->error));
                $stmt->execute() or die(htmlspecialchars($stmt->error));
                $stmt->bind_result($msg) or die(htmlspecialchars($stmt->error));

                >>debug stops here>> $stmt->fetch() or die(htmlspecialchars($stmt->error));

                response('error', $msg);
                $stmt->close();
                die();

        } else {
                response('success', 'Success!');

        }

}

2 个答案:

答案 0 :(得分:0)

尝试切换这两行:

$stmt->execute() or die(htmlspecialchars($stmt->error)); 
$stmt->bind_result($msg) or die(htmlspecialchars($stmt->error));

$stmt->bind_result($msg) or die(htmlspecialchars($stmt->error)); 
$stmt->execute() or die(htmlspecialchars($stmt->error));  

答案 1 :(得分:0)

我忘了在绑定结果后获取

$stmt->fetch()