MySQL“创建表"错误;询问 [英] Error with MySQL "CREATE TABLE" query

查看:77
本文介绍了MySQL“创建表"错误;询问的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道这个问题已经被问过数百遍了,但是我环顾了互联网,却找不到语法可能有什么问题

I know that this has been asked hundreds of times before, but I looked around the Internet and couldn't find what could possibly be wrong with my syntax:

mysql_select_db('Projects');

        $sql = "CREATE TABLE $data[ID] (
            ID INT NOT NULL,
            Creator INT NOT NULL,
            Name VARCHAR(20) NOT NULL,
            Version VARCHAR(20) NOT NULL,
            Status VARCHAR(20) NOT NULL,
            Date VARCHAR(20) NOT NULL,
            Skript VARCHAR(20) NOT NULL,
            Filename VARCHAR(20) NOT NULL,
            Downloads INT NOT NULL,
            PRIMARY KEY(ID)
            )";

        if (mysql_query($sql)){

            echo "Created";

        }else{

            echo "Not created, ".mysql_error();

        }

我尝试使用反引号,引号等,但徒劳无功.错误中显示的表名(21)是正确的.

I tried using backticks, quotation marks et.c but in vain. The table name (21) displayed in the error is correct.

这是我得到的错误,包括回显未创建" ;;

Here's the error that I get, including the echo "Not created, ";:

未创建,您的SQL语法有错误;请检查与您的MySQL服务器版本相对应的手册,以获取正确的语法,以在第1行附近使用'23(ID INT NOT NULL,Creator INT NOT NULL,Name VARCHAR(20)NOT NUL'

Not created, 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 '23 ( ID INT NOT NULL, Creator INT NOT NULL, Name VARCHAR(20) NOT NUL' at line 1

推荐答案

用于命名对象(包括MySql中的表)的规则:

Rules for naming objects, including tables in MySql:

http://dev.mysql.com/doc/refman/5.1/en/identifiers .html

标识符可以以数字开头,但 除非引用可能不完全由 数字.

Identifiers may begin with a digit but unless quoted may not consist solely of digits.

您不能以数字开头的表格命名

you cant name your table start with digits

例如,这将起作用

   $sql = "CREATE TABLE 't'.$data[ID] (
        ID INT NOT NULL,
        Creator INT NOT NULL,
        Name VARCHAR(20) NOT NULL,
        Version VARCHAR(20) NOT NULL,
        Status VARCHAR(20) NOT NULL,
        Date VARCHAR(20) NOT NULL,
        Skript VARCHAR(20) NOT NULL,
        Filename VARCHAR(20) NOT NULL,
        Downloads INT NOT NULL,
        PRIMARY KEY(ID)
        )";

如您所见,它以t

或在其周围使用反引号.像这样

or use backticks around it. like that

   `$data[ID]`

这篇关于MySQL“创建表"错误;询问的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆