2015-09-02 220 views
1

我正在嘗試從數據庫獲取名稱並將其打印在頁面上。該名稱與用戶名一起位於數據庫表中。用戶名可以從會話中訪問。我想這樣的:從數據庫中獲取一個值

<?php 

include('checksession.php'); 
require('db-connection.php'); 

function getUsername(){ 
    $username = $_SESSION['username']; 


    $sql = "SELECT NAME FROM benutzer WHERE BENUTZERNAME LIKE '" . $username . "'"; 
    $res = mysqli_query($con, $sql); 

    echo "<p>" $res "</p>"; 
} 

?> 
+2

您的代碼對SQL注入開放。您將需要查看使用準備好的語句和查詢參數。目前,您正在執行輸入*作爲代碼*,它允許用戶在數據庫上任意執行代碼。 – David

+0

看這裏:http://stackoverflow.com/questions/32800559/read-single-value-from-database-and-save-it-in-variable/32800580#32800580 – Black

回答

0

用途:

$sql = "SELECT NAME FROM benutzer WHERE BENUTZERNAME = '" . $username . "'"; 

相反:

$sql = "SELECT NAME FROM benutzer WHERE BENUTZERNAME LIKE '" . $username . "'"; 
如果你想獲取準確的用戶名

+0

如果你這樣做,一定要小心SQL注射。總是使用** mysqli_real_escape_string **或類似的 –

0

mysqli_query返回mysqli_result對象。您必須調用其中一個mysqli_result方法才能從數據庫中獲得想要返回的內容。