这个问题在这里已有答案:
我的mysql有问题。它连接到数据库,但它不会创建表。这是我的代码示例:
$db = new mysqli('localhost', 'user.name', 'user.pass', 'db');
if ($db === FALSE) {
echo "ERRROR";
}
$sql = "CREATE TABLE IF NOT EXISTS db (
ID INT NOT NULL AUTO_INCREMENT,
NAME VARCHAR(20) NULL
)";
$db->query($sql);
if (mysqli_query($db, $sql)) {
echo "TABLE CREATED SUCCESSFULLY";
} else {
echo "TABLE CREATED UNSUCCESSFULLY";
}
我感谢你的每一个答案,谢谢你的帮助!
如果将列定义为键,则MySQL仅允许自动增量列。鉴于该列标记为ID,这意味着您可能希望将其作为主键,请尝试以下操作:
$sql = "CREATE TABLE IF NOT EXISTS db (
ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
NAME VARCHAR(20) NULL
)";
因为MySQL查询中有错误
CREATE TABLE IF NOT EXISTS db (
ID INT NOT NULL AUTO_INCREMENT,
NAME VARCHAR(20) NULL;
表定义不正确;只能有一个自动列,必须将其定义为键
修复:
CREATE TABLE IF NOT EXISTS db (
ID INT NOT NULL AUTO_INCREMENT,
NAME VARCHAR(20) NULL,
key idx_ID(ID)
);
PRIMARY KEY不是强制性的,普通密钥也可以工作。
你能试试吗?
$db = new mysqli('localhost', 'user.name', 'user.pass', 'db');
if ($db === FALSE) {
echo "ERRROR";
}
$sql = "CREATE TABLE IF NOT EXISTS db (
ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
NAME VARCHAR(20) NULL
)";
$db->query($sql);
if (mysqli_query($db, $sql)) {
echo "TABLE CREATED SUCCESSFULLY";
} else {
echo "TABLE CREATED UNSUCCESSFULLY";
}