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);
那么您的代码将 运行 保持原样。
无法弄清楚为什么我总是收到此错误。阅读了很多关于此的帖子,但我不明白何时使用 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);
那么您的代码将 运行 保持原样。