2010-09-25 5 views
0

У меня есть таблица MySQL (участников) с шестью колонками (FirstName, LastName, электронная почта, имя пользователя, пароль, ключ)INSERT INTO MySQL и PHP

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

Как бы я идти об этом?

+1

Настроен ли ваш DB схема, чтобы принять строки в ключевом столбце? –

ответ

1

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

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

Некоторые вещи, чтобы отметить:

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

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

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

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

+0

Я использовал этот код, но он ничего не делает. Он даже не отображает ошибку. –

+0

Пожалуйста, опубликуйте вывод 'SHOW CREATE TABLE members'. – Hammerite

+0

Прошу прощения. Я наконец-то понял. Спасибо за помощь! Я отправляю другую. У меня есть код PHP, который, похоже, не работает. Хотите попробовать и помочь? :-) Еще раз спасибо. –

1
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

+50000 для постоянного ввода первичного ключа auto_incrment. Если вам нужна другая функция столбца, аналогично первичному ключу, используйте уникальный индекс. также вы можете избегать использования имени столбца 'key', поскольку оно используется mysql в качестве ключевого слова. вместо этого используйте 'member_key' или что-то подобное. – prodigitalson