为什么我在这个create table脚本中出错?

时间:2012-05-11 01:10:04

标签: mysql sql mysql-error-1064

我正在尝试编写我的第一个php / mysql页面并遇到SQL语法错误我无法找到原因。

错误如下:

  

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

我的代码如下。任何帮助非常感谢。

$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');
}

1 个答案:

答案 0 :(得分: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

演示:

Click here to view the working CREATE TABLE script in SQL Fiddle.