2010-12-15 95 views
0

嗨大家我坚持这个代码即时通讯实际上是新的php ... 即时通讯试图做的是,即时试图插入到数据库中一个字段称为Id_Obj和它的VarChar但当我试图发送它它告诉我“未知列'Id_Obj4'在'字段列表' 我真的不知道该怎么做插入看起来像这样 我忘了它是不同的时候传递一个变量,只是字符串,所以它看起来像这样懒第一次遗憾:SMySQL插入PHP

while($info=mysql_fetch_Array($data)) 
{ 
print "name :".$info['Id']." "; 
$count=$info['Id']; 
} 
    $t="INSERT INTO Table_Faces(Id_Obj,Num_Sides)VALUES("; 
    $t = $t."IdObj$count".",".$_GET["ns"]; 
    $t = $t.")"; 
    mysql_query($t); 

在数据库中的字段标识,Id_Obj,Num_Sides

帮我请

+1

你想用字符串“IdObj $ count”做什么? 'echo $ t;'看看你的查询可能是有用的 - 你可能不会以你的想法来构建它。 – cdhowie 2010-12-15 16:03:43

+0

你可以通过在代码结尾处执行'print $ t;'来找出插入的内容。 – Spudley 2010-12-15 16:04:12

回答

2

你需要在你插入引号值

while($info=mysql_fetch_Array($data)) 
{ 
    print "name :".$info['Id']." "; 
    $count=$info['Id']; 
} 

$t="INSERT INTO Table_Faces(Id_Obj,Num_Sides)VALUES("; 
$t = $t."'IdObj$count'".",'".$_GET["ns"]."'"; 
$t = $t.")"; 
mysql_query($t); 

INSERT INTO Table_Faces (Id_Obj, Num_Sides) VALUES('asdf','foo')

我也建议你使用mysql_real_escape_string对所有要插入的变量在表中,以避免SQL注入攻击。

+1

请注意,在某些情况下,'mysql_real_escape_string'不能消除所有SQL注入漏洞。您最好使用适当的参数化查询。 – cdhowie 2010-12-15 16:04:32

+0

我不知道,这很好。我通常使用参数化查询和mysqli。 – GWW 2010-12-15 16:05:45

+0

@cdhowie,哪种情况?或者我应该问一个单独的问题? – TRiG 2010-12-15 16:06:00

0

您是否试图在表Table_Faces中创建一个名为Id_Obj4的新字段,或者您是否想要将值Id_Obj4添加到字段Id_Obj

尝试

$t = 'INSERT INTO Table_Faces (Id_Obj, Num_Sides) VALUES '; 
$t .= '("IdObj' . $count . '", "' . $_GET['ns'] . '")'; 

注意,还有鲍比表误差的巨大潜力在那里。

1

问题是您的查询中的值应引用。试试这个:

$t='INSERT INTO Table_Faces(Id_Obj,Num_Sides)VALUES('; 
$t .= '"IdObj' . $count . '", "' . $_GET["ns"] . '")'; 
mysql_query($t); 

请注意,您明确粘贴的$ _GET []变量到你的查询,这是一个直接的安全问题,大家谁的URL可以使用SQL注入。