Просто запрос эха вместо var_dump

0

Как я могу изменить свой код из var_dump только для echo?

Код:

$link = mysqli_connect("$myHost", "$myUser", "$myPass", "$myDB");

    // Check connection
    if($link === false){
        die("ERROR: Could not connect. " . mysqli_connect_error());
    }


    $username = mysqli_real_escape_string($link, $_SESSION['username']);

var_dump($username);

   $sql = "SELECT * FROM exampletable where username = $username";
    if ($result = $link->query($sql)) {

        while ($row = $result->fetch_row()) {
            var_dump($row);
        }


    }

Потому что если я var_dump($row); я всегда получаю это:

'[email protected]' (length=16)

Но я хочу, чтобы echo только имя пользователя :) Я новичок в php извините.

Спасибо

  • 0
    ВНИМАНИЕ : При использовании mysqli вы должны использовать параметризованные запросы и bind_param для добавления пользовательских данных в ваш запрос. НЕ используйте ручное экранирование и интерполяцию или конкатенацию строк для достижения этой цели, потому что вы будете создавать серьезные ошибки SQL-инъекций . Случайно ушедшие данные представляют серьезный риск. Использование связанных параметров менее многословно и проще для проверки, чтобы убедиться, что вы делаете это правильно.
  • 0
    Примечание. Объектно-ориентированный интерфейс к mysqli значительно менее многословен, что облегчает чтение и аудит кода, и его нелегко спутать с устаревшим интерфейсом mysql_query . Прежде, чем вы слишком инвестируете в процедурный стиль, стоит переключиться. Пример: $db = new mysqli(…) и $db->prepare("…") Процедурный интерфейс является артефактом эпохи PHP 4, когда был представлен mysqli API, и его не следует использовать в новом коде. Вы уже частично используете объектно-ориентированный стиль. Вы должны посвятить себя этому полностью и иметь последовательность.
Показать ещё 10 комментариев
Теги:
mysqli

2 ответа

1

Ваш запрос терпит неудачу, потому что вы забыли поставить кавычки вокруг $username в запросе. Так должно быть:

$sql = "SELECT * FROM exampletable where username = '$username'";

Затем в вашем цикле вы можете сделать:

while ($row = $result->fetch_assoc($result)) {
    echo $row['somecolumnname'];
}

чтобы увидеть содержимое этого столбца в каждой строке, которая соответствует имени пользователя.

0

sarahn22 ! Я вижу, что вы новый участник, поэтому добро пожаловать в StackOverflow. :)

Согласно документации функций PHP MySQLi fetch_row(), всякий раз, когда вы ее используете, вы получаете массив с каждым столбцом в виде индекса или null, если строки не найдены.

В этом случае, учитывая, что ваш столбец имени пользователя будет первым столбцом, вы можете получить его, набрав:

echo $row[0];

Итак, для лучшего понимания, представьте таблицу базы данных следующим образом:

username | first_name | last_name
---------------------------------
user01   | John       | Snow

Это будет результат:

echo $row[0]; // Shows "user01";
echo $row[1]; // Shows "John";
echo $row[2]; // Shows "Snow";

Удачи вам на новом пути в обучении PHP. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню