将php数组数据插入mysql无效

时间:2009-10-18 19:44:32

标签: php mysql arrays

你好我有一个数组$ 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();

有什么想法吗?谢谢。

4 个答案:

答案 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 />"