php - 我可能会在此查询中得到 "0 rows affected"的某些原因是什么?

标签 php mysql wordpress

背景故事:

我正在尝试创建一个 WordPress 主题,并且正在处理该主题的设置部分。我已经安装了 WordPress,运行它的 MySQL 数据库名为 testdb。我有一个文件 setup.php 看起来像

<?php
error_reporting(-1);
ini_set('display_errors', 'On');

$con = mysqli_connect('localhost', 'testadmin', 'something'); 
if ($con->connect_error)
{
   die("Connection failed: " . $conn->connect_error);
} 
echo "<p>Connected to localhost successfully</p>";

if ($con->select_db("testdb"))
{
    echo ("<p>Connected to database</p>");
}
else
{
    die($con->error);
}

if ($con->query("CREATE TABLE mems (id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR (50), title VARCHAR (20), bio VARCHAR (500), sord INT, picfn VARCHAR (100))") === TRUE)
{
    echo("<p>Created table for team members.</p>");
}
else
{
    die($con->error);;
}

$con->close();

?>

表创建部分失败,因为输出是

Connected to localhost successfully

Connected to database

CREATE command denied to user 'testadmin'@'localhost' for table 'mems'

我以为是权限问题,于是进入MySQL命令行运行

GRANT ALL on testdb.* to 'testadmin'@'localhost';

输出

Query OK, 0 rows affected (0.03 sec)

我检查了 SHOW DATABASES; 数据库 testdb 确实存在,我检查了 SELECT user FROM mysql.user;用户 testadmin 在那里。我知道密码是正确的。

那么可能是什么问题呢?

最佳答案

如果 mems 表已经存在,它将失败。

有一个 IF NOT EXISTS将检查它是否已经存在的子句。

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    [(create_definition,...)]
    [table_options]
    [partition_options]
    select_statement

[] 是可选的

关于php - 我可能会在此查询中得到 "0 rows affected"的某些原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31305514/

相关文章:

mysql - 将 select 语句转换为更新(包括 exists & having)

mysql - 数据库服务器配置

PHP 以水平方式显示来自 MySql 的数据

php - 解决 PHP PDO 错误 : SQLSTATE[42000] [1044]

php - 在使用 ini_set ('max_execution_time' , 0);

php - FROM 处或附近的 PostgreSQL 语法错误

php - 更改永久链接 wordpress 后出现 404 错误

php - 表单输入不会 POST 到 MYSQL,但会显示在屏幕上

mysql in 子句与大表连接

php - Wordpress 动态页脚小部件 - 仅当一个小部件存在时才显示第二个小部件区域,否则显示 1