使用WHERE子句中的数组中的值多次运行mysql查询

时间:2012-03-28 15:49:51

标签: php mysql

我需要多次运行数据库查询,具体取决于用户ID。继承人我的疑问:

    $query1="INSERT INTO wp_scloyalty (userid, value) VALUES ('XXXXX', '01234')";

我有一个用户ID数组来自这里显示的单独查询:

while($rows=mysql_fetch_array($allresult)){  

    $birthdays_today[] = $rows['user_id']; 

}

echo $birthdays_today[0];

我希望查询能够运行,但查询中有“userid”= XXXXX,我希望用数组中的用户ID填充。这意味着查询必须多次运行,每次都将下一个ID输入查询..

这有意义吗?

谢谢:)

4 个答案:

答案 0 :(得分:2)

MySQL具有批量插入功能。

$query1="INSERT INTO wp_scloyalty (userid, value) VALUES ('XXXXX', '01234'), ('XXX2', '23234'), ('XXXX3', '3434545')"

<?php
$query = "INSERT INTO wp_scloyalty (userid, value) VALUES ";
$usersToInsert = array();
foreach($birthdays_today as $user_id){
    $usersToInsert[] = "($user_id, '01234')";
}
$query .= implode(',', $usersToInsert);
?>

答案 1 :(得分:1)

使用for循环并使用sprintf()和字符串格式更改查询。

答案 2 :(得分:0)

<?php
foreach($birthdays_today as $uid){
    mysql_query(); // ...
}
?>

但是

<?php
while($rows=mysql_fetch_array($allresult)){  
    mysql_query(); // use $rows['user_id'] here
}
?>

答案 3 :(得分:0)

我只会在填充$birthdays_today[]后显示脚本。

foreach( $birthdays_today as $thisID )
{
  mysql_query( "INSERT INTO wp_scloyalty (userid, value) VALUES ('{$thisID}', '01234');" );
}