отображая содержимое запроса MySQL, работает только первое поле - PullRequest
0 голосов
/ 09 апреля 2009

Я использую запрос MySQL, подготовленный с помощью php, код:

$retreiveQuery = 'SELECT username, firstname, lastname FROM USERS WHERE username = ?';

if ($getRecords = $con->prepare($retreiveQuery)) {
    $getRecords->bind_param("s", $username);

    $getRecords->execute();        
    $getRecords->bind_result($username, $firstname, $lastname);

echo "<h1>".$username."</h1>
<p><strong>First Name: </strong>".$firstname."
<p><strong>Surname: </strong>".$lastname."
} else {
print_r($con->error);

Это довольно странно. имя пользователя - единственное поле, которое отображается. Почему другие столбцы не будут возвращены / связаны?

Если я делаю

SELECT username, firstname, lastname FROM USERS WHERE username = 'test';

Непосредственно в базе данных отображаются все поля, и все они содержат действительные данные.

Ответы [ 3 ]

1 голос
/ 09 апреля 2009

Я не запускал это, но заметил, что вы используете одну и ту же переменную, $ username, для связанного параметра и связанной переменной результата.

Возможно, результат не возвращает НИКАКОГО из них, но значение $ username имеет значение, отображаемое потому, что вы его назначаете заранее, а не потому, что оно поступает из базы данных.

Попробуйте использовать различные переменные, такие как $ param_user и $ result_user, и посмотрите, что произойдет. Я предполагаю, что ни один из результатов не будет возвращен, что будет указывать на проблему с запросом или привязкой результата.

1 голос
/ 09 апреля 2009

Вы должны позвонить

$getRecords->fetch();

после bind_result(), чтобы получить запись.

Имя пользователя выводилось, поскольку вы уже установили его для использования в качестве входного параметра.

1 голос
/ 09 апреля 2009

Что произойдет, если вы используете другое имя переменной для вывода имени пользователя? Как это:

ВЫБЕРИТЕ имя пользователя как имя_пользователя, имя, фамилия ОТ ПОЛЬЗОВАТЕЛЕЙ ГДЕ username = 'test';

, а затем

$ getRecords-> bind_result ($ user_name, $ firstname, $ lastname);

Интересно, не запутался ли он, используя одно и то же имя для ввода и вывода?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...