Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用mysqli_result()获取特定列数据_Php_Mysql_Sql - Fatal编程技术网

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>&emsp;'.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;