我正在製作一份php文檔,如果用戶在數據庫中並且輸入了正確的用戶名和密碼,則用戶所在的日誌。爲了安全起見,我使用了準備好的語句,但是我無法從SELECT查詢中獲得結果來設置我的網站所需的會話變量。這裏是我的代碼...從準備好的SELECT語句中提取結果
<?php
session_start();
require 'config.php'; #This file has all connection info
#$C is the mysqli connection
#$USERS is the name of the table in my database
$sql = $C->prepare('SELECT ID,Username,Favorites FROM '.$USERS.' WHERE Email=? AND Password=PASSWORD(?)');
$sql->bind_param("ss", $e,$p);
$e = $_POST['e'];#email
$p = $_POST['p'];#password
$query = $sql->execute();
$sql->store_result();
$numrows = $sql->num_rows;
if($numrows == 1) {
$sql->bind_result($id,$username,$favs);
while($sql->fetch()) {
$_SESSION['ID'] = $id;
$_SESSION['Name'] = $username;
$_SESSION['favs'] = $favs;
$_SESSION['valid'] = true;
}
echo 'true';
}
else {
echo 'User Not Found';
}
這正好呼應「用戶未找到」,因爲$總是numRows行= 0,我確信,所有輸入的信息是正確的。
也做一些調試'var_dump'或'print_r'來測試你的查詢。 –
它應該是'$ query - >> bind_result($ id,$ username,$ favs);'而不是'$ sql - > ...' – Mihai
@Mihai你錯了 –