2015-10-14 115 views
0

我想根據登錄的用戶從數據庫中獲取某些信息。現在,我可以從列和行獲取信息,但不是用戶具體。我可以使用$_SESSION嗎?那在$query工作?根據登錄用戶的ID顯示數據庫表中的數據

PHP:

$query = "SELECT * ". 
"FROM leavetable, users ". 
"WHERE leavetable.users_id = users.id "; 

$result = mysql_query($query) or die(mysql_error()); 
while($row = mysql_fetch_array($result)){ 
    echo ' <tr> '; 
    echo ' <td> '; 
    echo $row['id']; 
    echo ' <td> '; 
    echo $row['hours']; 
    echo ' <td> '; 
    echo $row['email']; 
    echo ' <td> '; 
    echo $row['username']; 
    echo ' <td> '; 
} 

回答

0

是的,但從來沒有建立自己的SQL查詢,如通過Shahnewaz先生的回答表明。這種方法很容易受到SQL注入攻擊,我建議你花一些時間去read about them和實驗。

進行參數化查詢正確的方法是用事先準備好的聲明:

$stmt = $dbh->prepare('SELECT * FROM leavetable WHERE leavetable.users_id = :id'); 
$stmt->bindParam(':id', $_SESSION['user_id']); 
$stmt->execute(); 
$result = $stmt->fetch(); 

關鍵的一點要記住的是,傳遞給prepare方法查詢字符串必須是一個普通的硬編碼字符串。如示例所示,您可以根據需要使用命名的placeholers(:whatever)。

順便說一句,在這個例子中$dbh會使用舊mysql_ *函數,而不是在PDO類,您might consider的實例。

+0

非常感謝! –

相關問題