Sql Query не работает! - PullRequest
       16

Sql Query не работает!

0 голосов
/ 01 апреля 2009
INSERT INTO `test` (`x`, `y`)  WHERE `id` = `$id`

VALUES (`$x`, `$y`)

Что не так с этим запросом? Я запускаю это в функции mysql_query() в файле php.

Ответы [ 6 ]

6 голосов
/ 01 апреля 2009

Нельзя использовать предложение Where со вставкой. Вы либо вставляете строку, либо нет.

4 голосов
/ 01 апреля 2009

Если вы пытаетесь обновить информацию из базы данных, используйте UPDATE вместо INSERT INTO в выполняемом запросе.

2 голосов
/ 01 апреля 2009

Вы не можете использовать предложение where на вставке. Я думаю, что вы, возможно, захотите обновить заявление:

update test set
x = $x,
y = $y
where id = $id

Когда вы вставляете новое значение в базу данных, у вас обычно нет значения идентификатора до окончания вставки (при условии, что вы используете автоматически генерируемые идентификаторы).

0 голосов
/ 01 апреля 2009

Также обратите внимание, что вы должны использовать одинарные кавычки ('), а не обратные кавычки (`) для значений. Обратные ссылки используются при обращении к именам столбцов / имен полей.

Это:

`field` = '$value'

вместо этого:

`field` = `$value`

, если вы действительно не хотите ссылаться на другое поле. Это иногда то, что вы хотите, когда копируете значения или совпадаете с JOIN и тому подобное. Но поскольку у вас там есть переменная, я предполагаю, что вы хотите использовать одинарные кавычки, а не обратные кавычки.

0 голосов
/ 01 апреля 2009

Итак, либо

ОБНОВЛЕНИЕ теста SET x = 'x', y = '$ y' WHERE id = '$ id';

OR

INSERT INTO test ('x', 'y') VALUES ('$ x', '$ y');

как указано в других сообщениях - вы не можете сделать ВСТАВКУ с ГДЕ.

0 голосов
/ 01 апреля 2009

Вам необходимо удалить «WHERE id = $ id» - это не имеет значения в инструкции INSERT.

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