2015-09-02 5 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, чтобы получить то, что вы хотите вернуть из БД.

Смежные вопросы