【问题标题】:phpmyadmin mysql INSERT statement syntax errorphpmyadmin mysql INSERT 语句语法错误
【发布时间】:2013-08-23 05:17:58
【问题描述】:

我不知道出了什么问题,为什么我的语句不会插入。我有以下数据:

username varchar length (25)
password varchar length (25)
fname varchar length (25)
email text
contactnum big int (30)

我不知道为什么我的电子邮件没有与我的联系号码一起插入 这是屏幕截图:

根据我的理解,长度是可以输入的数据中的字符数对吗?

我的查询似乎有什么问题?

【问题讨论】:

    标签: sql phpmyadmin


    【解决方案1】:
    INSERT INTO members (username, password, fname, email, contactnum)
    VALUES (2, 2, 2, 'have@gmail.com', 1)
    

    如果它的字符串不要忘记使用单引号

    【讨论】:

      【解决方案2】:

      您插入到 email 字段的字符串值需要被引用。此外,表和列的名称​​不应被引用。查询应如下所示:

      INSERT INTO members (username, password, fname, email, contactnum)
      VALUES (2, 2, 2, 'have@gmail.com', 1)
      

      请注意,您要更改的前三个字段被声明为 varchar,因此您也应该在其中插入字符串。尝试将整数插入 varchar 字段时没有出错的原因是在某些情况下可以自动转换错误的数据类型。我认为最好不要依赖隐式类型转换,以避免错误和意外结果,所以查询真的应该这样写:

      INSERT INTO members (username, password, fname, email, contactnum)
      VALUES ('2', '2', '2', 'have@gmail.com', 1)
      

      不过,这是一个见仁见智的问题。它们都有效。

      【讨论】:

      • 谢谢 :) 我说的对吗?关于长度值,您可以输入的字符数(位数)是多少?比如int age lenth value(2),只能输入11这样的两位数,输入111会报错吧?
      • @Daryl 正确,长度是字段中允许的最大字符数。
      • @MichalČihař 是的,你是对的,谢谢。我将删除该建议(无论如何,这是一个旁白,不是答案的一部分)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多