插入php数组数据到mysql不起作用

问题描述:

你好我有一个数组$ name [],我试图插入到我的表的第二个字段,但它不工作(表仍然是完全空白的)。我在代码中找不到错误,我做错了什么?插入php数组数据到mysql不起作用

$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(); 

有什么想法吗?谢谢。

+1

普罗蒂普:使用一个for循环会为你节省两行代码。 for($ i = 0; $ i 2009-10-18 19:51:27

+0

这解决了它。 在while循环中有上面的错误,我不知道它是什么。但用for循环替换while循环可以解决这个问题。 – 2009-10-18 20:13:35

+0

我认为btw的错误是$ i ++缺少a;之后。 – 2009-10-19 03:12:53

您使用常量i而不是$i作为密钥$name。所以,试试这个:

"INSERT INTO table VALUES ('','".$name[$i]."','','')" 

你也应该使用mysql_real_escape_string逃脱了MySQL查询值:

"INSERT INTO table VALUES ('','".mysql_real_escape_string($name[$i])."','','')" 
+0

或者这个:“INSERT INTO TABLE VALUES('','{$ name [$ i]}','','')” – 2009-10-18 19:50:21

+0

这也行不通。 – 2009-10-18 19:59:21

尝试运行这样的查询:

mysql_query($query) or die(mysql_error()); 

这会给你一个如果您的查询出现问题,请更好地了解您做错了什么。您也可以打印您的SQL调试:

echo "Query $i: $query<br />" 

嗯,首先,所有将做的是把3列1,一个条目,4空白,第2列与价值$name[i]。要在字符串中有一个变量,它需要用双引号。但是当你只有变量的时候,我没有看到这么做的意义。另外,$name[i]应该是$name[$i]

+0

我将其更改为$ name [$ i],这没什么区别。我现在将其他列留空,因为我尝试只获取一列数据,当它工作时,我可以将其他数组放入列中。 – 2009-10-18 19:54:57

确保在连接这样的查询时转义。 $'',';','','“。mysql_real_escape_string($ name [$ i])。'','','')”;

如果你没有,你可能会受到不良SQL injection