[英]MySQL syntax error while creating new table
我已經嘗試了幾個小時來解決這個問題,我在這里搜索了答案,但仍然無法弄清楚我的代碼有什么問題。 我正在嘗試使用 PHP 和 MySQL 創建一個新數據庫和一個表:
<?php
$hostname = 'localhost';
$username = 'root';
$password = '';
$connectDB = mysqli_connect($hostname, $username, $password);
if (!$connectDB) {
die('Connection failed: ' . mysqli_connect_error());
}
$query = 'CREATE DATABASE user_records
CREATE TABLE records_list (
id INT(5) NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(30) NOT NULL UNIQUE,
userpass VARCHAR(30) NOT NULL)';
if (mysqli_query($connectDB, $query)) {
echo '<div class="alertSuccess"><span>Query successful</span></div>';
} else {
echo '<div class="alertError"><span>Query failed: <i>' . mysqli_error($connectDB) . '</i></span></div>';
}
?>
這是錯誤:
Query failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE records_list ( id INT(5) NOT NULL PRIMARY KEY AUTO_INCREME' at line 2
我正在使用 VSCode 和 XAMPP,最新的 MySQL 8。
更新:我按照@Phil 和@Mark Walker 的建議編輯了我的代碼:
$queryCrDB = "CREATE DATABASE user_records;";
$queryCrTb = "USE user_records;
CREATE TABLE records_list (
id INT(5) NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(30) NOT NULL UNIQUE,
userpass VARCHAR(30) NOT NULL);";
if (mysqli_query($connectDB, $queryCrDB)) {
echo '<div class="alertSuccess"><span>Query successful</span></div>';
} else {
echo '<div class="alertError"><span>Query failed: <i>' . mysqli_error($connectDB) . '</i></span></div>';
}
if (mysqli_query($connectDB, $queryCrTb)) {
echo '<div class="alertSuccess"><span>Query successful</span></div>';
} else {
echo '<div class="alertError"><span>Query failed: <i>' . mysqli_error($connectDB) . '</i></span></div>';
但它仍然在 CREATE TABLE 行給我語法錯誤。
您需要在創建表之前運行創建數據庫。 下面的查詢應該可以工作,注意分號關閉各個命令和“使用數據庫”以切換到新創建的數據庫。
CREATE DATABASE user_records;
USE user_records;
CREATE TABLE records_list (
id INT(5) NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(30) NOT NULL UNIQUE,
userpass VARCHAR(30) NOT NULL);
基於 mysql 8 doc ,它應該是:
id INT(5) NOT NULL AUTO_INCREMENT PRIMARY KEY
不是
id INT(5) NOT NULL PRIMARY KEY AUTO_INCREMENT
PRIMARY KEY
和AUTO_INCREMENT
顛倒
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.