为什么在此创建表脚本中出现错误?

Nic*_*5a1 1 mysql sql mysql-error-1064

我试图写我的第一个php / mysql页面,并遇到一个SQL语法错误,我找不到原因。

错误如下:

无法创建域建议表。错误您的SQL语法有错误。检查与您的MySQL服务器版本相对应的手册,以在第2行的'PRIMARY_KEY,域TEXT,作者TEXT,submitdate DATE NOT NULL)DE'附近使用正确的语法

我的代码如下。任何帮助,不胜感激。

$sql = 'SELECT domain FROM domainsuggestions'; 
$domains = mysqli_query($link, $sql);  // get domain suggestions from table
if (!$domains)  // check if was able to get results from table. if not create table
{
    $output = 'Unable to find domain suggestions table. Creating now...';
    echo htmlspecialchars($output, ENT_QUOTES, 'UTF-8');

    $createtable = 'CREATE TABLE domainsuggestions(
    id INT NOT NULL AUTO_INCREMENT PRIMARY_KEY,
    domain TEXT,
    author TEXT,
    submitdate DATE NOT NULL
    ) DEFAULT CHARACTER SET utf8';

    if (!mysqli_query($link, $createtable))  // if can't create table output error
        {
            $output = 'Unable to create domain suggestions table. Error '. mysqli_error($link);
            echo htmlspecialchars($output, ENT_QUOTES, 'UTF-8');
            exit();
        }

    $output = 'domainsuggestions table created!';
    echo htmlspecialchars($output, ENT_QUOTES, 'UTF-8');
}
Run Code Online (Sandbox Code Playgroud)

小智 5

在您的CREATE TABLE语句中,它应该PRIMARY KEY带有空格而不是PRIMARY_KEY包含下划线

解:

从中删除下划线PRIMARY_KEY

更正的脚本:

CREATE TABLE domainsuggestions
(
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    domain TEXT,
    author TEXT,
    submitdate DATE NOT NULL
) DEFAULT CHARACTER SET utf8
Run Code Online (Sandbox Code Playgroud)

演示:

单击此处查看SQL Fiddle中有效的CREATE TABLE脚本。