php函数将结果返回到一个数组变量中


php function return the result into an array variable

我有两个名为login.phpconfigDb.php的文件。我在configDb.php中有一个名为sql_query($query)的函数,不知何故是这样的:

function sql_query($query) {
$link=mysqli_connect("localhost", "root", "", "basheer");
if (mysqli_connect_error()) {
    echo mysqli_connect_errno();
}
$q=  mysqli_query($link, $query);
while ($row=mysqli_fetch_array($q))
{   
       return $row['username']." ".$row['password'];
}
}

我在l ogin.php中包含了文件,并且我能够在数组变量中获取结果:

$username = $_POST['user'];//
$password = $_POST['pass'];
$query="select * from tbladmin where username='Admin'";//Sql query
require  'include/config_db.php';
$user=  sql_query($query);//passed the function result to an array var
print_r($user);//prints the result correctly
echo '<br/>';
if ($username == $user['username'] && $password == $user['password'])
//I am stuck here with $user['username] and $user['password'] 
{
   header("location: index.php");
} else {
    $message = "Invalid user name or password, please try again!";
}

如何将$username$password$user数组变量进行比较?

使函数返回一个数组而不是字符串

更改:

return $row['username']." ".$row['password'];

收件人:

return array("username" => $row['username'], "password" => $row['password']);

您必须返回一个数组:return $row;而不是$row['username']." ".$row['password'];,它是一个字符串

<?php
    session_start();
    require_once('connectie.php');
    if(isset($_POST['submit'])){
        $username = strip_tags($_POST['username']);
        $password = strip_tags($_POST['password']);
        $username = $db->real_escape_string($username);
        $password = $db->real_escape_string($password);
      $sql = "SELECT id, username, password FROM gebruikers WHERE username = '$username' AND password = '$password'";
      $result = $db->query($sql);
      if($result->num_rows == 1){
        $row = $result->fetch_object();
        $_SESSION['loggedin'] = true;
        $_SESSION['id'] = $row->id;
        $_SESSION['username'] = $row->username;
        print_r($result);
        header('location: ../index.php ');
      }else{
        session_destroy();
        echo "NOPE";
      }
    }
?>

这就是我在登录系统中使用的内容。

最好的选择是将POST参数和数据库中存在的用户名和密码进行比较,并获得计数。如果计数为1,则其平均身份验证成功。否则返回0

$query = "select count(*) from tbname where username = '".$_POST['username']."' and password = '".$_POST['password']."'";
$run = mysqli_query($query);
$result = mysqli_fetch_array($run);
if($result['count']==1){
    header("location: index.php");
}else{
    $message = "Invalid user name or password, please try again!";
}