2012-09-03 2 views
-1

Я знаю, что это самый простой вопрос, но я застрял в этом в течение 3 часов и не мог понять, что случилось. Может ли любое тело, пожалуйста, сказать мне, что что-то не так в этом запросе?mysql inserting не работает

insert into user_to_deliverable set d_id = 1 u_id = 4 

Я имею следующую ошибку

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'u_id = 4' at line 1 

Я исправил запрос в соответствии с ответом, но он работает только на PHPMyAdmin не вставляя через код, вот мой код

foreach($_POST['user'] as $k=>$v) { 

     echo $ins_u_deliverable = "insert into user_to_deliverable set d_id = ".$_POST['dlvrbl_id'].", u_id = $v "."<br />"; 

     mysql_query($ins_u_deliverable); 
    } 

массив для пользователя

[user] => Array 
    (
     [0] => 4 
     [1] => 5 
    ) 
+1

** СТОП ** Вы уязвимы для [SQL-инъекций] (http://bobby-tables.com). Прочитайте и узнайте о них, прежде чем идти дальше с этим кодом, или просто попрошайничать с сервером pwn3d. –

ответ

2

Набор обычно выглядит примерно так:

INSERT INTO table SET a=1, b=2, c=3 

Я предполагаю, что вам не хватает запятой, т.е. ваш запрос должен быть:

insert into user_to_deliverable set d_id = 1, u_id = 4 

Если это не работает, убедитесь, что все элементы, которые вы указываете, существуют.

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

$_POST['dlvrbl_id'] and $v 

, чтобы убедиться, что ваши переменные все правильно.

+0

см. Мое редактирование – baig772

+0

Не могли бы вы отредактировать этот ответ, чтобы я мог удалить свой нижний предел, что неверно? Благодарю. –

+0

Достаточно честный; но что мой ответ отсутствует? @ baig772 Я вижу ваше редактирование, можете ли вы уточнить, что происходит сейчас? Ошибка больше не возникает, и есть ли другое место вместо этого? – jaypb

1

Вы комбинируете синтаксис из двух разных команд INSERT и UPDATE, чтобы создать новую команду, которая не существует в SQL.

Правильный синтаксис для вставки:

INSERT INTO user_to_deliverable (d_id, u_id) VALUES (1, 4) 
+0

это делает @larry Lusting – baig772

+1

Он нет. SET с INSERT отлично подходит для MySQL. Это также более читаемо. – Bugs

+1

Просто проверил MySQL и, как вы заявляете, этот гибридный формат, на самом деле поддерживается MySQL. Итак, рассмотрите мой пост, чтобы сказать «не следует» вместо «нет». –

0

решить эту проблему, что <br /> делал эту проблему, удалить его и запрос просто идет хорошо :) Спасибо всем :)

+0

Если это применимо, вы должны выбрать правильный ответ, если вы чувствуете, что есть один :) – jaypb

+0

infact, правильный ответ мой :) – baig772