【发布时间】:2025-12-23 03:10:11
【问题描述】:
我正在创建一个 PHP 应用程序,他们在其中输入数据库信息,我的程序将连接到数据库并插入表。我想首先确保数据库中没有当前表,如果有我想给它们一个错误。
我已经尝试过“SELECT COUNT(*)”,但是当我尝试运行它时,它显示:
“mysqli_result 类的对象无法转换为 int”。
$check = 'SELECT COUNT(*)';
$val = $connection->query($check);
if ($val > 0) {
header("Location: ../../db-setup.php?notclean");
}
else {
$sql = 'CREATE TABLE `test` (`name` VARCHAR(255) NOT NULL);';
$connection->query($sql) or die();
header('Location: ../../db-setup.php?success');
}
我尝试了这种配置,即使数据库中没有表,它仍然会抛出我的 notclean created 错误。
所以我尝试了...
$check = 'SELECT COUNT(*)';
$val = $connection->query($check);
if ($val > 1) {
header("Location: ../../db-setup.php?notclean");
}
else {
$sql = 'CREATE TABLE `test` (`name` VARCHAR(255) NOT NULL);';
$connection->query($sql) or die();
header('Location: ../../db-setup.php?success');
}
尝试此操作后,如果数据库中没有任何内容,它将按照我的意愿创建表。但是,如果数据库中有东西,它会抛出一个奇怪的错误:
"注意:mysqli_result 类的对象无法转换为 整数”。
【问题讨论】:
-
奇怪!为什么不为
SELECT语句指定一个表?您将获得1作为计数(即使您没有选择数据库!)。