我试图在数据库中插入一个名为Id_Obj
的字段并且它是一个VarChar但是当我尝试发送它时,我收到一个错误:
未知栏' Id_Obj4'在'字段列表'
插入内容如下所示:
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,Id_Obj,Num_Sides。
答案 0 :(得分:2)
一些事情:
您的SQL可以是:
$t ="INSERT INTO Table_Faces(Id_Obj,Num_Sides)VALUES('IdObj4','". $_GET["ns"]. "')";
另外,作为一方,你知道快捷方式:
$t = $t . " something added";
与$t .= " something added"
答案 1 :(得分:1)
您需要在SQL中用单引号包装字符串。
$ns = intval($_GET('ns')); // This should sanitize $ns enough for the db.
if ($ns > 0)
{
$t="INSERT INTO Table_Faces(Id_Obj,Num_Sides)VALUES(";
$t = $t."'IdObj4'".",".$ns . ")";
mysql_query($t);
}
你也忘记了右括号。
我已经修改了你的代码,以更加简单的方式抵抗SQL注入。如果您打算将Id_Obj
变为一个变量,则应考虑使用mysql_real_escape_string()
来转义在SQL语句中使用的值。
答案 2 :(得分:0)
当您的插入查询如此小的情况下,为什么不在一行中使用所有内容?它可以帮助您避免许多小问题。我认为 @Mark 解决了您的问题。