从php foreach循环插入mySQL

时间:2015-02-13 19:01:33

标签: php mysql

我知道这已被问了很多次,但我似乎无法解决这个问题。我运行以下代码,但它只返回失败。当我运行

的输出时
  

$ query1 - > INSERT INTO号码(计数,代码,奖品,打印)价值(' 1',' Q0stZr0g8uc4syE','',' 0&# 39);

直接进入phpmyadmin它插入正常。我必须做一些愚蠢的事......任何想法?

$times_to_run = 100;
$prize='';

for($i=1;$i<=$times_to_run;$i++){

    $array[] = array(
            'count' => $i,
            'code1' => randomString(),
            'prize' => $prize
    );
}

$codes = $array;

foreach ($codes as $code){

    $query1 = "INSERT INTO number (count,code,prize,printed) VALUES ('". $code['count']."','". $code['code1']."','". $code['prize']."','0');";

    $q = mysqli_query($query1) or die (mysql_error());

}
编辑:我更改了查询以使用mysqli并获得完整错误,即: 实际错误是:

  

警告:mysqli_query()需要至少2个参数,给定1个,它指向的行是:$ q = mysqli_query($ query1)或die(mysql_error());

**如果我改变

  

&#39;&#34 ;. $代码[&#39;奖品&#39;]&#34;&#39;

到&#39; 0&#39;我仍然得到同样的错误。

2 个答案:

答案 0 :(得分:1)

为清楚起见,以下是您的代码的更正版本:

$link = mysqli_connect("localhost", "my_user", "my_password", "world");
$times_to_run = 100;
$prize='';

for($i=1;$i<=$times_to_run;$i++){

    $array[] = array(
            'count' => $i,
            'code1' => randomString(),
            'prize' => $prize
    );
}

$codes = $array;

foreach ($codes as $code){

    $query1 = "INSERT INTO number (count,code,prize,printed) VALUES ('". $code['count']."','". $code['code1']."','". $code['prize']."','0')";

    $q = mysqli_query($link, $query1) or die (mysqli_error($link));

}

答案 1 :(得分:0)

我可能在这里错了,但我认为在之后需要空格。之后。 像这样:

'" . $code['count'] . "'

而不是

'". $code['count']."'

哦,只是一些可能很方便且很有用的东西,mysql_query已被弃用且不安全,你在本地主机上自己使用它,我建议你看看mysqli_,它基本上是一样的。

http://php.net/manual/en/function.mysql-query.php