你好我有一个数组$ name [],我试图插入到我的表的第二个字段但它不起作用(表仍然完全空白)。我在代码中找不到错误我做错了什么?
$username="us";
$password="pw";
$database="db";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "error");
$i=0;
while ($i < 5) {
$query = "INSERT INTO table VALUES ('','$name[i]','','')";
mysql_query($query);
$i++
}
mysql_close();
有什么想法吗?谢谢。
答案 0 :(得分:5)
您使用常量i
代替$i
作为$name
的密钥。所以试试这个:
"INSERT INTO table VALUES ('','".$name[$i]."','','')"
您还应该使用mysql_real_escape_string
转义MySQL查询的值:
"INSERT INTO table VALUES ('','".mysql_real_escape_string($name[$i])."','','')"
答案 1 :(得分:2)
嗯,首先,所做的只是将第1,3和4列的条目设为空白,将第2列的值设为$name[i]
。要在字符串中包含变量,需要使用双引号。但是,当你可以拥有变量时,我没有看到这样做的重点。
此外,$name[i]
应该是$name[$i]
。
答案 2 :(得分:1)
确保在连接类似的查询时转义。
$ query =“INSERT INTO table VALUES('','”。mysql_real_escape_string($ name [$ i])。“','','')”;
如果不这样做,您可能容易受到SQL injection不良
的攻击答案 3 :(得分:0)
尝试运行这样的查询:
mysql_query($query) or die(mysql_error());
如果您的查询出现问题,这可以让您更好地了解自己的错误。您可能还想打印SQL以进行调试:
echo "Query $i: $query<br />"