打印mysqli SELECT查询的结果

时间:2014-11-05 13:44:02

标签: php mysql database mysqli

我正在尝试在数据库中搜索结果,并显示与该结果相关的所有列。我与数据库的连接工作正常,但我不知道如何打印我的查询结果,以便可以访问它。

 我尝试将其作为一个数组访问,但它没有用。我想要的是能够在数据库中搜索用户名'TEST',并返回密码,电子邮件和用户名(以检查用户名是否存在)。

我目前的代码是这个    $user = mysqli_query($con,"SELECT * FROM user_list where username = '$username'"); print_r($user);

($ username是用户名)。它返回此

(
    [current_field] => 0
    [field_count] => 4
    [lengths] => 
    [num_rows] => 2
    [type] => 0
)

5 个答案:

答案 0 :(得分:1)

您需要先使用mysqli_fetch_assoc

获取结果
$userResult = mysqli_query($con,"SELECT * FROM user_list where username = '" . mysqli_real_escape_string($con, $username) . "'"); 
$user = mysqli_fetch_assoc($userResult);
print_r($user);
  • 通过转义字符串来避免sql注入。

答案 1 :(得分:1)

使用Fetch显示结果

     $result = mysqli_query($con,"SELECT * FROM user_list where username = '" . mysqli_real_escape_string($con, $username) . "'"); 
    while($row = mysqli_fetch_array($result))
     {
        print_r($row);
     } 

答案 2 :(得分:0)

你必须fetch你的结果:

$user = mysqli_query($con,"SELECT * FROM user_list where username = '$username'");

while ($row = $user->fetch_row()) {
        print_r($row);
    }

答案 3 :(得分:0)

while($row = mysql_fetch_array($user, MYSQL_ASSOC))
{
    echo "MATE :{$row['MATE']}  <br> ".
         "TEST : {$row['TEST']} <br> ".
         "--------------------------------<br>";
}
it's may work your you.

答案 4 :(得分:0)

要获取mysqli_query()的结果,您需要使用其中一个返回行的函数。例如,fetch_all()获取所有行,或者fetch_array()获取单个行。

您也可以直接在对象上循环。

$result = mysqli_query($con, 'SELECT ...');
foreach($result as $row) {
    print_r($row);
    // do something with each row
}

但是,就您而言,您根本不应该使用mysqli_query()!这使您容易受到SQL注入的攻击。您必须使用参数绑定,这在准备好的语句中可用。

例如,您的固定查询将如下所示:

$stmt = $con->prepare('SELECT * FROM user_list where username = ?');
$stmt->bind_param('s', $username);
$stmt->execute();
$result = $stmt->get_result();
foreach ($result as $row) {
    print_r($row);
}

区别在于我的变量没有与SQL分开,因此没有注入的风险。您绝对不应在SQL查询中直接允许任何变量输入。正确地做到这一点并不难。