How to solve Uncaught Error: Call to undefined method stdClass::query()

How to solve Uncaught Error: Call to undefined method stdClass::query()

无法弄清楚为什么我总是收到此错误。阅读了很多关于此的帖子,但我不明白何时使用 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");
}

第一部分,连接到数据库,似乎很顺利。在 "if ($result = $mysqli->query($sql))" 行抛出错误。 我尝试将其更改为:

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

但这并没有改变任何东西。

你的数据库连接是 $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);

那么您的代码将 运行 保持原样。