Я учусь работать с mysql и столкнулся с проблемой с базовым логином, используя php. Я использую Mysqli объект, как показано в моем connection.phpпростой логин с php и mysql
$user = "root";
$pass = "root";
$db = "mktraining";
$conn = new mysqli("localhost",$user,$pass,$db);
С моим текущим кодом я могу успешно передавать имя пользователя и пароль через форму и добавить их в базу данных, если они уже не существуют. Однако, когда я вхожу в имя пользователя и пароль, которые уже находятся в базе данных, я не получаю правильный результат. Моя проверка входа ниже.
include "connection.php";
//get info from form and set variables
$username = $_POST['username'];
$password = $_POST['password'];
//database check for login
$query = "SELECT * FROM project6 WHERE username = '$username' AND password = '$password'";
$result = $conn->query($query);
var_dump($result);
//get the number of rows that corespond to entered usersame and password
$count = $result->num_rows;
//implement the apropriate action if there is a match or not
if($count == 1){
login_user();
} else {
new_user();
}
my $count
переменная не возвращает значение. Когда я эхо $count
все, что я получаю, это NULL
. Я добавил vardump, чтобы увидеть, что я получал там все это дает мне это
object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(4) ["lengths"]=> NULL ["num_rows"]=> int(1) ["type"]=> int(0) }
Я пытался искать то, что это означает, но не смогли найти что-то я понимаю. Было бы очень полезно, если бы я мог получить некоторую помощь, если у меня есть ошибка в моем коде или какое-то другое концептуальное недоразумение. Благодаря!
ПОСТАНОВИЛИ
Спасибо за помощь всем. Оказывается, то, что у меня было, было правильным, и это была проблема в моей функции login_user()
, которая была беспорядочной. Я ценю всю вашу помощь.
(http://stackoverflow.com/questions/60174/how- can-i-prevent-sql-injection-in-php) –
Я не вижу переменную '$ rows'? – nomistic
@nomistic, не нужно, просто проверьте строки с номерами результатов. – Root125