У меня проблемы с моей 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
)";
Можете ли вы попробовать это.
$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";
}
Поскольку в запросе 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)
);
ПЕРВИЧНЫЙ КЛЮЧ не является обязательным, нормальный ключ тоже может работать.