Php 使用mysqli_result()获取特定列数据
我有一个功能,验证用户登录Php 使用mysqli_result()获取特定列数据,php,mysql,sql,Php,Mysql,Sql,我有一个功能,验证用户登录 $login_query = mysqli_query($GLOBALS['conn'], "SELECT COUNT(`user_id`) as `count`,`user_id` FROM `users` WHERE `user_email`='$email' AND `user_password` = '" . md5($password) . "'") or die(mysqli_error($GLOBALS['conn'])); return ($
$login_query = mysqli_query($GLOBALS['conn'],
"SELECT COUNT(`user_id`) as `count`,`user_id` FROM `users`
WHERE `user_email`='$email' AND `user_password` = '" . md5($password) . "'") or die(mysqli_error($GLOBALS['conn']));
return ($mysqli_result->num_rows == 1) ?
mysqli_result($login_query, 0, 'user_id') : false;
我正在使用mysql,现在切换到mysqli
我想知道的是,在return语句中,如何从已从DB中选择的行返回user_id?我稍微简化了查询。如果登录成功,此函数将返回用户id;否则返回0 在配置文件中建立$mysqli连接,您可以在每个页面的顶部包含该文件
#config.php#
$dbhost = "localhost";
$dbuser = "";
$dbpassword = "";
$dbdatabase = "";
$salt = "";
$mysqli = mysqli_connect($dbhost,$dbuser,$dbpassword,$dbdatabase);
if (mysqli_connect_errno())
{
echo '<p>There was a problem with the mysqli connection:
<br> '.mysqli_connect_error().'</p>';
exit;
}
#Calling the function:#
require_once($_SERVER['DOCUMENT_ROOT'].'/config.php');
checklogin($email, $password, $salt, $mysqli);
function checklogin($email, $password, $salt="", $mysqli)
{
$email = $mysqli->real_escape_string($email);
$password = $mysqli->real_escape_string($password);
$login_query = '
SELECT *
FROM
`users`
WHERE
`user_email`='$email'
AND
`user_password` = "' . md5($salt.$password) . '";';
$result = $mysqli->query($login_query)
$row = $result->fetch_array();
if ($result->num_rows > 0)
{$user_id = $row['user_id'];}
else
{$user_id = 0;}
return $user_ID
}
您不应该简单地将mysql_*函数交换为mysqli_*函数。您最好使用带有占位符的准备语句,并将输入值绑定到这些占位符,以避免sql注入。@VMai PDO也很好,但我在问其他问题。我对您所做的事情发表了评论,我没有给您答案。有办法。。。顺便说一下,我也不推荐使用MD5,但它比明文密码稍微好一点。这对你有用吗?返回$mysqli\u result->num\u rows==1$mysqli_result->fetch_assoc['user_id']:false;