插入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();
有什么想法吗?谢谢。
您使用常量i
而不是$i
作为密钥$name
。所以,试试这个:
"INSERT INTO table VALUES ('','".$name[$i]."','','')"
你也应该使用mysql_real_escape_string
逃脱了MySQL查询值:
"INSERT INTO table VALUES ('','".mysql_real_escape_string($name[$i])."','','')"
或者这个:“INSERT INTO TABLE VALUES('','{$ name [$ i]}','','')” – 2009-10-18 19:50:21
这也行不通。 – 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]
。
我将其更改为$ name [$ i],这没什么区别。我现在将其他列留空,因为我尝试只获取一列数据,当它工作时,我可以将其他数组放入列中。 – 2009-10-18 19:54:57
确保在连接这样的查询时转义。 $'',';','','“。mysql_real_escape_string($ name [$ i])。'','','')”;
如果你没有,你可能会受到不良SQL injection
普罗蒂普:使用一个for循环会为你节省两行代码。 for($ i = 0; $ i 2009-10-18 19:51:27
这解决了它。 在while循环中有上面的错误,我不知道它是什么。但用for循环替换while循环可以解决这个问题。 – 2009-10-18 20:13:35
我认为btw的错误是$ i ++缺少a;之后。 – 2009-10-19 03:12:53