PHP mysqli或stmt如何在PHP变量中存储查询值
我正在尝试从查询中获取变量,并使用此查询将其存储为cookie:PHP mysqli或stmt如何在PHP变量中存储查询值,php,mysqli,Php,Mysqli,我正在尝试从查询中获取变量,并使用此查询将其存储为cookie: $query="SELECT id,username,password FROM employee where email='$email' AND password='$password' Limit 1"; $result= $mysqli->query($query); if($result->num_rows == 1){ $stmt = $mysqli->prepare($query);
$query="SELECT id,username,password FROM employee where email='$email' AND password='$password' Limit 1";
$result= $mysqli->query($query);
if($result->num_rows == 1){
$stmt = $mysqli->prepare($query);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($user_id, $username, $db_password);
$user_browser = $_SERVER['HTTP_USER_AGENT'];
$_SESSION['user_id'] = $user_id;
//used echo to check stored variables
echo "user_id=".$_SESSION['user_id'];
//used echo here to check the query result
$_SESSION['username'] = $username;
echo "username=".$username;
$_SESSION['login_string'] = hash('sha512',
$password . $user_browser);
// Login successful.
return true;
}
else{
// Password is not correct
// We record this attempt in the database
$now = time();
$mysqli->query("INSERT INTO login_attempts(user_id, time)
VALUES ('$user_id', '$now')");
return false;
}
}
我在网站上看到的是:
user\u id=0username=
这就是我解决问题的方法:
$quer="SELECT id,username FROM employee where email=?";
if($result->num_rows == 1){
$stmt = $mysqli->prepare($quer);
$stmt->bind_param('i',$email);
$stmt->execute();
$stmt->bind_result($user_id,$username);
增加:
while($stmt->fetch()) {}
用于:
得到结果:
Cookies username:test_user db usernametest_user
感谢大家的帮助。首先,尝试更改sql查询。不要以这种方式给$email和$password。尝试在mysql中使用bindParam。然后检查一次并告诉发生了什么?在
$result=$mysqli->query…
(如果(!$result){die('Error querying db:'.$mysqli->Error);}
)之后再添加一行,如果有任何错误,请告诉我。什么@anantkumarsingh有点离题,但建议您绑定参数以防止。另外,确保您有session_start()在设置或检索这些变量之前,请在脚本顶部的某个位置执行代码>操作。$quer=“从员工处选择id、用户名、密码,其中电子邮件=?限制1”$stmt->repare($query)$stmt->bind_参数('i',$email)$stmt->execute()$stmt->store_result()$stmt->bind\u result($user\u id、$username、$db\u password);给出了与以前相同的输出。这是您的确切代码吗?如果是这样的话,->repare
将永远不会起作用;`->准备。是的->准备idk如何变成->在这里准备
Cookies username:test_user db usernametest_user