[英]Print the Result of a mysqli SELECT Query
我正在嘗試在我的數據庫中搜索結果,並顯示與該結果相關的所有列。 我與數據庫的連接工作正常,但我不知道如何打印查詢結果。
我嘗試將它作為數組訪問,但沒有奏效。 我想要的是能夠在數據庫中搜索用戶名“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
)
使用 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);
}
您需要先使用 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);
要獲得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 查詢中直接允許任何變量輸入。 正確地做到這一點真的沒有那么困難。
您必須獲取結果:
$user = mysqli_query($con,"SELECT * FROM user_list where username = '$username'");
while ($row = $user->fetch_row()) {
print_r($row);
}
while($row = mysql_fetch_array($user, MYSQL_ASSOC))
{
echo "MATE :{$row['MATE']} <br> ".
"TEST : {$row['TEST']} <br> ".
"--------------------------------<br>";
}
it's may work your you.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.