Я пытаюсь получить идентификатор пользователя с предыдущей страницы и выводить информацию на другую страницу, и в моем подготовленном сообщении я получаю сообщение об ошибке в части подготовки инструкции. Я не получаю, что у меня есть этот почти точный код на другом сайте, который у меня есть, и он отлично работает. Я в тупике, я просмотрел все имена в моем db, и все правильно.Не удалось подготовить в подготовленном сообщении
Это ошибка я получаю:
подготовить() не удалось: У вас ошибка в вашем SQL синтаксиса; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'group FROM users WHERE id =?' в строке 1
линия, которая упоминается это один ...
$stmt = $con->prepare("SELECT fullname, email, username, group FROM users WHERE id = ?");
Это полное подготовленное заявление.
<?php
$con = mysqli_connect("localhost","root","","db");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$stmt = $con->prepare("SELECT fullname, email, username, group FROM users WHERE id = ?");
if (false===$stmt) {
// Check Errors for prepare
die('prepare() failed: ' . htmlspecialchars($con->error));
}
$stmt->bind_param("i", $_GET['id']);
if (false===$stmt) {
// Check errors for binding parameters
die('bind_param() failed: ' . htmlspecialchars($stmt->error));
}
$stmt->execute();
if (false===$stmt) {
die('execute() failed: ' . htmlspecialchars($stmt->error));
}
//Check errors for execute
//if(!$stmt->execute()){trigger_error("there was an error....".$con->error, E_USER_WARNING);}
$stmt->bind_result($fullname, $email, $username, $group);
$stmt->store_result();
if ($stmt->fetch()) { ?>
Я пропустил что-то очень очевидное или что может быть причиной этого?
Зачем это ошибка, и теперь пропускается только для последнего имени столбца? – Becky
Поскольку GROUP является частью ключевого слова MySQL. Вот почему ваше сообщение об ошибке начинается с группы. Он ищет GROUP BY. Но, как я уже сказал, хорошая практика заключается в том, чтобы помещать все имена столбцов внутри обратных тактов, чтобы вам никогда не приходилось беспокоиться об использовании ключевого слова. Вот страница об этом https://dev.mysql.com/doc/refman/5.0/en/keywords.html – chrisjacob
Я предполагаю, что технически это зарезервированное слово вместо ключевого слова, но в любом случае это все равно вызовет проблемы. – chrisjacob