Возникла проблема с запросом MYSQL - PullRequest
1 голос
/ 10 ноября 2011

Моя функция получает переменную $status (0-ошибка, 1-успех), $err_id (идентификатор сообщения об ошибке в дБ) и $field (имя поля ввода) и получает сообщение об ошибке из дБ, с заданным вары.

Пытался die() на каждом шаге определять, где произошла ошибка, также ставится die($status.$err_id.$field); сразу после функции err. Нет успеха

Дебаг с нетбинами. Отмечена строка, в которой отладка останавливается в функции

$ msg всегда равно нулю . Не могу получить его из БД. В журнале ошибок 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 голосов
/ 12 ноября 2011

Я забыл получить после результата привязки

$stmt->fetch()
0 голосов
/ 11 ноября 2011

попробуйте переключить эти две строки:

$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));  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...