Как решить Uncaught Error: вызов неопределенного метода stdClass :: query () - PullRequest
0 голосов
/ 13 апреля 2020

Не могу понять, почему я продолжаю получать эту ошибку. Прочитайте много постов по этому вопросу, но я не понимаю, когда использовать stdClass (), а когда нет.

Код:

$mysqli = new \stdClass();
$mysqli->connection = new mysqli($mysql_db_hostname, $mysql_db_user, $mysql_db_password, $mysql_db_database);
if($mysqli->connection->connect_error)
{
    echo "Error: Failed to make a MySQL connection, here is why: \n";
    echo "Errno: " . $mysqli->connect_errno . "\n";
    echo "Error: " . $mysqli->connect_error . "\n";
    exit;
}
else {
    printf("Succesfully connected to database.");
}

$sql = "SELECT * from customer";
if ($result = $mysqli->query($sql)) {    <<==== ERROR
    printf("Success");
}

Первая часть, связанная с базой данных, кажется до go отлично. Ошибка выдается в строке "if ($ result = $ mysqli-> query ($ sql))". Я попытался изменить его на:

if ($result = {object) $mysqli->query($sql))

, но это ничего не изменило.

1 Ответ

1 голос
/ 13 апреля 2020

Ваше подключение к базе данных установлено на $mysqli->connection, а не $mysqli, поэтому вам нужно будет написать

$result = $mysqli->connection->query($sql)

У вас есть похожая проблема с $mysqli->connect_errno и $mysqli->connect_error.

Обратите внимание, что более типичное использование будет:

$mysqli = new mysqli($mysql_db_hostname, $mysql_db_user, $mysql_db_password, $mysql_db_database);

, тогда ваш код будет работать как есть.

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