CREATE TABLE go-hie(
id INT NOT NULL AUTO_INCREMENT,
a VARCHAR(20) NOT NULL DEFAULT '',
PRIMARY key(id)
)这样建表肯定会出错,应该这样:
CREATE TABLE `go-hie`(
id INT NOT NULL AUTO_INCREMENT,
a VARCHAR(20) NOT NULL DEFAULT '',
PRIMARY key(id)
)如果你使用工具建表,它也会会自动的给表名加上``(就是键盘上面数字1左边的那个键)你访问go-hie表的时候,这样写就不会出错了。
select * from `go-hie`;

解决方案 »

  1.   

    在免费数据库当中,mysql使用算很广泛了。它特点是小巧,速度快,适合用于网络数据库。别的数据库象sqlserver,db2等也很好,但要计算资金的投入产出哦!
      

  2.   

    to 数学家:
    但我访问我的表goa时,怎么没用`go-hie`加引号的格式?还有访问表user_id也没用,直接就写着:
    select * from user_id;select * from goa;??
      

  3.   

    根据mysql的命名规则:
    一个名字可以由当前字符集中包含的文字与数字字符以及 下划线“_” 和 “$” 组成。可以看出,横线'-'并未在其中,也就是说它并不合法。但是从 MySQL 3.23.6 开始,引进了用``引用标识符,这样对于包含横线'-'的数据库名、表名和字段名,可以通过加``来定义和引用。例如:`go-hie`等,甚至我们可以在表名中使用空格:CREATE TABLE IF NOT EXISTS `a b`(
    id INT not null AUTO_INCREMENT,
    b VARCHAR(20) DEFAULT null,
    PRIMARY KEY(id)
    )同样,如果标识符是一个受限掉的词或包含特殊的字符,当使用它时,必须以一个 ` (backtick) 来引用它。
    select * from `go-hie`;最后你说的user_id,goa是合法的标识符命名,所以不需要加``,当然加上也不会出错。
      

  4.   

    to 数学家:关于mysql1067错误,我看了你给我的那个帖子http://www.phpe.net/faq/74.shtml,但是我按他的说法在my.ini文件里加了如下两句话,我的my.ini文件原来是:
    [WinMySQLAdmin]
    Server=D:/mysql/bin/mysqld-nt.exe
     
    现在是改成如下:
    [WinMySQLAdmin]
    Server=D:/mysql/bin/mysql.exe
    basedir=d:/mysql
    datadir=d:/mysql/data但还是不能启动,麻烦你再看看,问题出在哪里?我这里没有my.cnf 文件
      

  5.   

    谢谢数学家,问题暂时解决了,今后还希望得到你帮助:)我的MSN,[email protected]