2012-09-03 74 views
-1

我知道这是一个非常基本的问题,但我一直坚持了3个小时,无法弄清楚什么是错的。 任何机构请告诉我,这个查询最新的错误?mysql插入不工作

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

** ** STOP你很容易受到[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 

如果这不起作用,请确保您指定的所有元素都存在。

编辑:你的语法现在看来是正确的,故障排除我会确保你得到准确的值

$_POST['dlvrbl_id'] and $v 

,以确保您的变量是正确的。

+0

请参阅我的编辑 – baig772

+0

您能否编辑此答案,以便我可以删除我的downvote,这是不正确的?谢谢。 –

+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

事实上,正确的答案是我的:) – baig772