Итак, проект, над которым я работаю, построен на платформе разработки Cloud9, и я столкнулся с проблемой. В этом конкретном запросе MySQL отсутствует один из его данных столбца, он просто отказывается вернуть его.PHP MySQL, данные не возвращаются, даже если они находятся в базе данных
Часть моего кода входа, с запросом;
http://i.stack.imgur.com/kmx9O.png
в коде:
$sql_command = "SELECT Salt FROM User WHERE Name ='" . $username . "';";
$result = $conn->query($sql_command);
if($result->num_rows > 0)
{
//echo "<p> username: ". $username . "</p>";
//echo "<p> password: ".$password . "</p>";
$salt = $result->fetch_array()[0];
//echo "<p>salt " . $salt . "</p>";
$hashed_password = hash("sha256", $salt . $password);
$sql_command = "SELECT `ID`, `Status` FROM User WHERE Password ='" . $hashed_password .
"' AND Name = '" . $username . "';";
$result = $conn->query($sql_command);
//echo $hashed_password;
if($result->num_rows > 0)
{
$user = $result->fetch_array()[0];
$status = $result->fetch_array()[1];
if($status != -1)
{
$_SESSION['login_user'] = $user;
$_SESSION['login_status'] = $status;
$_SESSION['login_user_name'] = $username;
}
данных в вопросе колонке Status;
http://puu.sh/ec3fP/de1e63b384.png
Единственный столбец, который не возвращает никаких данных, это столбец Status.
Каждый другой запрос работает нормально.
Состояние столбца - тип int, длина 11. Никаких других особых характеристик.
Пожалуйста, ваши код здесь, так что сохраняется для будущего SO посетителей. –
Я бы предложил совсем другой подход. Почему у вас есть запросы к БД для сравнения пароля. Почему бы просто не выбрать все столбцы, которые вам нужны на основе имени пользователя, а затем выполнить сравнение. Нет необходимости разбивать это на два отдельных запроса. Вы также можете рассмотреть возможность использования PHP в функциях 'password_hash()' и 'password_verify()', чтобы избежать необходимости хранить соль отдельно в таблице DB. –
Вы попробовали альтернативно выбрать все (*) из базы данных и использовать некоторое время? .. Пока ($ result = fetch_array) { $ status = $ result ['Status']; echo $ status; } /// Это может быть очень случайным, каков ваш редактор кода? : D –