背景故事:
我正在尝试创建一个 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/