ВСТАВИТЬ В MySQL и PHP - PullRequest
       3

ВСТАВИТЬ В MySQL и PHP

0 голосов
/ 25 сентября 2010

У меня есть таблица MySQL (члены) с шестью столбцами (Имя, Фамилия, Электронная почта, имя пользователя, пароль, Ключ)

Мне нужно вставить строку в столбец Key для имени пользователя admin

Как бы я поступил так?

Ответы [ 3 ]

1 голос
/ 25 сентября 2010

Предположим, строка, которую вы хотите вставить, является литеральной строкой 'MyString'. Вы можете обновить таблицу так:

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

Некоторые вещи на заметку:

  • Я включил имена столбцов, такие как Key, в кавычки идентификаторов (обратные ссылки). Это главным образом потому, что я знаю, что MySQL может рассматривать слово «ключ» как зарезервированное слово SQL, что может привести к тому, что он не сможет обработать мой запрос UPDATE.
  • Предполагается, что столбец Key имеет строковый тип данных, например TEXT или CHAR(20). Если это не так (например, если это INT), то нет смысла пытаться обновить его, чтобы он содержал строку.
  • Я также предполагаю, что длина столбца, если это CHAR или VARCHAR, достаточно велика, чтобы содержать эту строку (то есть она имеет длину не менее 8). Если столбец слишком короткий, чтобы содержать строку, которую я пытаюсь вставить в нее, MySQL либо обрезает строку, либо выдает сообщение об ошибке, в зависимости от режима SQL.

В качестве альтернативы, если в таблице нет строки, для которой username - «admin», но вы хотите вставить ее, вы используете

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

На это утверждение распространяются те же условия, что и на приведенное выше. Кроме того, для всех столбцов, которые NOT NULL, также должны быть указаны значения (с возможным исключением целочисленного поля с автоинкрементом).

1 голос
/ 25 сентября 2010
UPDATE members 
   SET `Key`='<SOMETHING>' 
 WHERE username='admin' 
 LIMIT 1

У вас должен быть первичный ключ, например member_id (обычно INT с auto_increment). Тогда вы можете сделать:

UPDATE members 
   SET `Key`='<SOMETHING>' 
 WHERE member_id=<X>
0 голосов
/ 25 сентября 2010

Если вы не знаете, существует ли этот пользователь, используйте ON DUPLICATE ... http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...