从phpforeach循环插入mySQL


Insert into mySQL from php foreach loop

我知道这个问题已经被问了很多次了,但我似乎无法解决问题。我正在运行以下代码,但它只是返回fail。当我运行的输出时

$query1->插入数字(计数、代码、奖品、打印)VALUES('1','Q0stZr0g8uc4syE','','0')

它直接插入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());

**如果我更改

'".$code['prize']。"'

到"0",我仍然得到相同的错误。

为了让事情变得清楚,下面是代码的更正版本:

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

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

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

而不是

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

哦,还有一件可能很方便也很好的事情,mysql_query是不推荐使用的,而且不安全,除非你在本地主机上自己使用它,我建议你看看mysqli_,它的工作原理基本相同。

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