我在SQL中遇到语法错误

时间:2015-05-21 21:11:37

标签: php mysql

这与我在如何使用php创建表的指令中的代码相同。但每次我执行代码时,我都会在localhost上连接到MySQL服务器作为cis54。 CREATE TABLE失败。您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在附近使用')'在第5行。这并没有告诉我,我不知道如何解决这个问题或者想要说些什么。寻找答案让我无法接近解决方案。已经检查过php错误,没有。

<?php
  $dbc = mysqli_connect('localhost', 'cis54student', 'student', 'cis54')
    or die('Could not connect to MySQL server.');

echo 'Connected to MySQL server on localhost as cis54.' . "<br>";

$query = "CREATE TABLE rowe_email_list (
    first_name VARCHAR(20),
    last_name VARCHAR(20),
    email  VARCHAR(60),
)";
$rs = mysqli_query($dbc, $query) or die('CREATE TABLE Failed.' . mysqli_error($dbc));

echo 'Create table rowe_email_list.' . "<br>";

    mysqli_close($dbc);
?>    

2 个答案:

答案 0 :(得分:1)

两件事: -

  1. ,最后需要删除附近的电子邮件,如下所示: -

    $query = "CREATE TABLE rowe_email_list (
    first_name VARCHAR(20),
    last_name VARCHAR(20),
    email  VARCHAR(60) // , removed from here
    )";
    
  2. 长度也太短,请将它们增加到最大值。那更好。

    $query = "CREATE TABLE rowe_email_list (
        first_name VARCHAR(255),
        last_name VARCHAR(255),
        email  VARCHAR(255) // , removed from here
     )";
    
  3. 注意: - 两者都建议给你,但我把它们放在一起。

    首先解决您的问题。

    第二个因为每个字段的长度较短而让您对未来出现的问题感到更舒服。

答案 1 :(得分:0)

你的sql中的尾随逗号可能会破坏它:

$query = "CREATE TABLE rowe_email_list (
    first_name VARCHAR(20),
    last_name VARCHAR(20),
    email  VARCHAR(60),
)";

应该是:

$query = "CREATE TABLE rowe_email_list (
    first_name VARCHAR(20),
    last_name VARCHAR(20),
    email  VARCHAR(60)
)";