【问题标题】:INSERT INTO MySQL and PHP插入 MySQL 和 PHP
【发布时间】:2011-04-17 01:23:49
【问题描述】:

我有一个 MySQL 表(成员),有六列(名字、姓氏、电子邮件、用户名、密码、密钥)

我需要在 用户名 admin

Key 列中插入一个字符串

我该怎么做呢?

【问题讨论】:

  • 您的数据库架构是否设置为接受键列中的字符串?

标签: php mysql string insert


【解决方案1】:
UPDATE members 
   SET `Key`='<SOMETHING>' 
 WHERE username='admin' 
 LIMIT 1

您应该有一个主键,例如 member_id(通常是 INTauto_increment)。然后你可以这样做:

UPDATE members 
   SET `Key`='<SOMETHING>' 
 WHERE member_id=<X>

【讨论】:

  • +50000 总是有一个数字 auto_incrment 主键。如果您需要以与主键类似的方式使用另一个列函数,请使用唯一索引。您也可能希望避免使用列名key,因为它被mysql用作关键字。改用member_key 或类似的东西。
【解决方案2】:

假设您要插入的字符串是文字字符串'MyString'。您可以像这样更新表格:

UPDATE `members` SET `Key` = 'MyString' WHERE `username` = 'admin'

注意事项:

  • 我已将列名括在标识符引号(反引号)中,例如Key。这主要是因为我知道 MySQL 可能会将单词“key”视为 SQL 保留字,这可能会导致它无法解析我的 UPDATE 查询。
  • 这假定列Key 具有字符串数据类型,例如TEXTCHAR(20)。如果不是(例如,如果它是 INT),那么尝试将其更新为包含字符串是没有意义的。
  • 我还假设列长度,如果它是 CHARVARCHAR,足够长以包含此字符串(即它的长度至少为 8)。如果列太短而无法包含我要放入其中的字符串,则 MySQL 将截断字符串或​​发出错误消息,具体取决于 SQL 模式。

或者,如果表中没有username 为“管理员”的行,但您想插入一个,则使用

INSERT INTO `members` (`username`, `key`) VALUES ('admin', 'MyString')

本声明受与上述相同的限制条件约束。此外,NOT NULL 的任何列也需要指定值(自动递增整数字段可能除外)。

【讨论】:

  • 我使用了这段代码,但它什么也没做。它甚至不显示错误。
  • 请发布SHOW CREATE TABLE members的输出。
  • 对不起。我终于弄明白了。谢谢您的帮助!我现在发布另一个。我有一些似乎不起作用的 PHP 代码。想尝试一下并提供帮助吗? :-) 再次感谢。
【解决方案3】:

如果您不知道该用户是否存在,请使用 ON DUPLICATE... http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

【讨论】:

    猜你喜欢
    • 2012-11-06
    • 2012-10-28
    • 2019-03-24
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 2015-08-30
    • 1970-01-01
    相关资源
    最近更新 更多