Ошибка PHP / MYSQL: объект класса mysqli_result не может быть преобразован в строку - PullRequest
0 голосов
/ 14 октября 2018

Я только начал изучать mySQL вместе с PHP (основы), и я застрял на 2 дня с этой ошибкой.У меня есть HTML-код:

<html>
<head>
    <title>Title</title>
</head>
<body>
    <?php include 'pehape.php' ?>
<span>Username:</span><?php echo $var ?>
</body>
</html>

Я просто пытаюсь получить имя пользователя из базы данных, используя этот код:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";



$conn = new mysqli($servername, $username, $password, $dbname);

$var = $conn->query("SELECT Name FROM users WHERE ID=0");

?>

Это то, что я получаю в результате в сетиbrowser.

Username:
Recoverable fatal error: Object of class mysqli_result could not be converted to string in /storage/ssd3/749/7441749/public_html/index.php on line 7

Теперь после того, как я получаю результат - Object, но я не знаю, как преобразовать его в строку, используя PHP.Кто-нибудь знает, как это исправить? Чтобы преобразовать объект в строку.

Я пытался использовать функцию print_r, но у меня ничего не вышло. Я нашел очень мало информации об этом. Кроме того, это мойСтруктура базы данных, если она вам нужна для некоторой информации (думаю, это может оказать влияние, не знаю): http://prntscr.com/l5xu9n

Ответы [ 2 ]

0 голосов
/ 14 октября 2018

$var в вашем коде на самом деле является объектом типа mysqli_result.

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

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);

// dont normally get ID's of zero so I chnaged this to 1
$result = $conn->query("SELECT Name FROM users WHERE ID=1");

// now get the result row
$row = $result->fetch_assoc();     // row will be an array

?>

Теперь в вашем HTML вы можете сделать это

<html>
<head>
    <title>Title</title>
</head>
<body>
    <?php include 'pehape.php' ?>
<span>Username:</span><?php echo $row['Name'];?>
</body>
</html>
0 голосов
/ 14 октября 2018

Вы должны получить свой результат следующим образом:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);

if($result = $conn->query("SELECT Name FROM users WHERE ID=0")) {
    $var = $result->fetch_object();
    $result->close();
}
?>

Затем в своем HTML:

<html>
<head>
    <title>Title</title>
</head>
<body>
    <?php include 'pehape.php' ?>
<span>Username:</span><?php echo $var->Name ?>
</body>
</html>

Проверьте документы: http://php.net/manual/pt_BR/mysqli-result.fetch-object.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...