首页 文章

执行查询时出现SQL错误

提问于
浏览
0

分析期间发现4个错误 .

期待结束报价' . (位于510处的“”附近)预计会有逗号或结束括号 . (靠近“',email varchar(100)NOT NULL,active int(1)NOT NULL默认值'0'”在181位置)语句的意外开头 . (位置268处的“20”附近)无法识别的声明类型 . (位置272处的“NOT NULL”附近)

SQL查询:

CREATE TABLE IF NOT EXISTS `users`
(
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(32) NOT NULL,
  `password` varchar(32) NOT NULL,
  `online` int(20) NOT NULL default ‘0',
  `email` varchar(100) NOT NULL,
  `active` int(1) NOT NULL default ‘0',
  `rtime` int(20) NOT NULL default ‘0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

INSERT INTO `users` (`id`, `username`, `password`, `online`, `email`, `active`, `rtime`) 
VALUES (1, ‘testing’, ‘testing’, 0, ‘fake@noemail.co.uk’, 0, 0);

6 回答

  • 1

    例如,您使用不同类型的引号字符

    `online` int(20) NOT NULL default ‘0', 
             here --------------------^
    

    每次使用时都要用普通的替换它

    CREATE TABLE IF NOT EXISTS `users`
    (
      `id` int(11) NOT NULL auto_increment,
      `username` varchar(32) NOT NULL,
      `password` varchar(32) NOT NULL,
      `online` int(20) NOT NULL default '0',
      `email` varchar(100) NOT NULL,
      `active` int(1) NOT NULL default '0',
      `rtime` int(20) NOT NULL default '0',
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    

    但由于这些列的类型是 int ,因此根本不需要围绕默认值的引号 .

  • 0

    您正在使用不同类型的报价 '

    替换这个:

    CREATE TABLE IF NOT EXISTS `users`
    (
      `id` int(11) NOT NULL auto_increment,
      `username` varchar(32) NOT NULL,
      `password` varchar(32) NOT NULL,
      `online` int(20) NOT NULL default ‘0',
      `email` varchar(100) NOT NULL,
      `active` int(1) NOT NULL default ‘0',
      `rtime` int(20) NOT NULL default ‘0',
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 
    
    INSERT INTO `users` (`id`, `username`, `password`, `online`, `email`, `active`, `rtime`) 
    VALUES (1, ‘testing’, ‘testing’, 0, ‘fake@noemail.co.uk’, 0, 0);
    

    有了这个:

    CREATE TABLE IF NOT EXISTS `users`
    (
      `id` int(11) NOT NULL auto_increment,
      `username` varchar(32) NOT NULL,
      `password` varchar(32) NOT NULL,
      `online` int(20) NOT NULL default '0',
      `email` varchar(100) NOT NULL,
      `active` int(1) NOT NULL default '0',
      `rtime` int(20) NOT NULL default '0',
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    
    
    
    INSERT INTO `users` (`id`, `username`, `password`, `online`, `email`, `active`, `rtime`) 
    VALUES (1, 'testing', 'testing', 0, 'fake@noemail.co.uk', 0, 0);
    
  • 0

    Sql Executed

    请先正确选择数据库:

    在SQL编辑器中复制下面给出的SQL并执行它 . 希望这能解决你的问题 . 谢谢 .

    CREATE TABLE IF NOT EXISTS `users`
    (
      `id` int(11) NOT NULL auto_increment,
      `username` varchar(32) NOT NULL,
      `password` varchar(32) NOT NULL,
      `online` int(20) NOT NULL default '0',
      `email` varchar(100) NOT NULL,
      `active` int(1) NOT NULL default '0',
      `rtime` int(20) NOT NULL default '0',
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 
    
    INSERT INTO `users` (`id`, `username`, `password`, `online`, `email`, `active`, `rtime`) 
    VALUES (1, 'testing', 'testing', 0, 'fake@noemail.co.uk', 0, 0);
    
  • 0

    只需从0中删除所有Int数据类型的''引号 .

    CREATE TABLE IF NOT EXISTS users ( id int(11) NOT NULL auto_increment, username varchar(32) NOT NULL, password varchar(32) NOT NULL, online int(20) NOT NULL default 0, email varchar(100) NOT NULL, active int(1) NOT NULL default 0, rtime int(20) NOT NULL default 0, PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    
  • 2
    • 不需要在默认值零附近引用任何引号

    • 您需要在INSERT查询中替换单引号 ' 而不是 引号 .

    工作代码将是

    CREATE TABLE IF NOT EXISTS `users` (
      `id`       int(11)      NOT NULL auto_increment,
      `username` varchar(32)  NOT NULL, 
      `password` varchar(32)  NOT NULL, 
      `online`   int(20)      NOT NULL default 0, -- here
      `email`    varchar(100) NOT NULL, 
      `active`   int(1)       NOT NULL default 0, -- here
      `rtime`    int(20)      NOT NULL default 0, -- here
      PRIMARY KEY (`id`) 
    ) ENGINE = MyISAM DEFAULT CHARSET=utf8; 
    
    INSERT INTO `users` (`id`, `username`, `password`, `online`, `email`, `active`, `rtime`) 
    VALUES (1, 'testing', 'testing', 0, 'fake@noemail.co.uk', 0, 0); -- here
    

    SQL Fiddle DEMO:http://sqlfiddle.com/#!9/286728/1

  • 0

    试试这个:

    CREATE TABLE `users` (
      `id` int(11) NOT NULL,
      `username` varchar(32) NOT NULL,
      `password` varchar(32) NOT NULL,
      `online` int(20) NOT NULL DEFAULT '0',
      `email` varchar(100) NOT NULL,
      `active` int(1) NOT NULL DEFAULT '0',
      `rtime` int(20) NOT NULL DEFAULT '0',
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    

    和:

    INSERT INTO users (id, username, password, online, email, active, rtime) VALUES (1, 'testing', 'testing', 0, 'fake@noemail.co.uk', 0, 0);
    

相关问题