У меня был простой сценарий входа, который отлично работал под mysql, а im в настоящее время пытается его портировать в mysqli, и я просто не могу заставить его работать.Проблема преобразования Mysql to Mysqli: login
login($username, $password) {
$link = mysqli_connect('localhost', 'user', 'pw', 'db');
$user_id = user_id_from_username($username);
$username = sanitize($username);
$password = md5($password);
$loginquery = "SELECT COUNT(DISTINCT user_id) FROM users WHERE username='$username' AND password = '$password'";
$count = mysqli_query($link, $loginqueryquery);
$countarray = mysqli_fetch_array($count, MYSQLI_BOTH);
$countarrayres = $countarray[0];
if($countarrayres == 1) {return true ;} else {return false ;}
}
ив попробовал все это на тестовой странице: я установить $ имя = тест, и $ пароль = тест, который увязанный с моим «тест» пользователя в моей дб. это вызывает $ countarrayres = 1, когда я печатаю его. я также получаю отпечаток 0 для того же самого, если я изменяю либо pw, либо имя пользователя на что-то несуществующее, поэтому оно предполагает, что оно работает, но не сбито с толку.
страницы этот скрипт действует в просто:
$login = login($username, $password);
if($login === false) { "wrong password/username bro"; } else { //log in based on session user_id;}
ив попытался изменить ложное к истине, но я по-прежнему получаю сообщение «неверный пароль/имя пользователя братан», так что бы предложить Theres большую проблему, чем возможно, функция? im miffed относительно того, что происходит здесь, потому что единственное, что изменилось, это функции mysql -> mysqli, ничего больше. есть идеи?
EDIT: $ test был опечаткой, это фактически $ login в моем скрипте. извините.
Это требует для базовой отладки. Что не так, где? Что 'mysqli_error()' должен сказать о запросе? Что содержит запрос при его выводе и что происходит, если вы запускаете запрос в phpMyAdmin? –
он не позволяет мне войти в систему и показывает сообщение «неправильное имя пользователя/пароль» каждый раз, является ли комбинация правильной или неправильной. mysqli_error() ничего не выводит для меня. $ count output: mysqli_result Object ([current_field] => 0 [field_count] => 1 [lengths] => Array ([0] => 1) [num_rows] => 1 [type] => 0) и $ countarray выходы Array ([0] => 1 [COUNT (DISTINCT user_id)] => 1) Так им удалось извлечь номер один от с легкостью. он просто не хочет работать в функции. если я запускаю запрос с тестом в myphpadmin, так как переменные i получают 1, желаемый результат. – Grimbonie