2014-11-05 69 views
-1

我正在搜索我的數據庫中的結果,並顯示與該結果有關的所有列。我的數據庫連接工作正常,但我不知道如何打印我的查詢結果,以便它可以被訪問。我試着以數組的形式訪問它,但它不起作用。我想要的是能夠在數據庫中搜索用戶名'TEST',並返回密碼,電子郵件和用戶名(以檢查用戶名是否存在)。打印mysqli的結果SELECT Query

我當前的代碼是這樣的
$user = mysqli_query($con,"SELECT * FROM user_list where username = '$username'"); print_r($user);

($用戶名是用戶名)。它返回這個

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

請仔細閱讀說明書第一。 – 2014-11-05 13:45:49

+0

你需要先用'mysqli_fetch_assoc($ user)'獲取結果。 – vaso123 2014-11-05 13:46:18

回答

0

使用抓取來顯示結果

 $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); 
    } 
+1

感謝您提供關於SQL注入的額外提示,只要我可以提供最佳答案 – user2880853 2014-11-05 13:55:33

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

感謝您對SQL注入的評論,請務必在完成之前對所有內容進行排序 – user2880853 2014-11-05 13:55:52

+0

http://php.net/manual/en/mysqli.prepare.php使用準備好的語句避免SQL注入,請勿使用轉義.. – Gudgip 2014-11-05 13:58:30

+0

爲什麼? mysqli可以使用程序和OOP。如果你使用程序,你需要以某種方式逃脫,這就是爲什麼'mysqli_real_escape_string'是。 – vaso123 2014-11-05 13:59:48

0

你必須fetch你的結果:

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

while ($row = $user->fetch_row()) { 
     print_r($row); 
    } 
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.