PHP使用while循环准备语句

时间:2013-09-23 11:12:56

标签: php prepared-statement

我正在使用预备语句在php中做一些工作。我的任务是首先从一个表中选择一些数据,然后将数据插入另一个表。如何在预准备语句中使用while循环来插入记录?

以下是代码:

stmt=$db->prepare("SELECT userid, order_number, balance from plus_wallet  limit 0,3");
$stmt->execute();
$stmt->bind_result($userid, $orderid, $balance);
while($stmt->fetch()) {
    $stmt1=$db->prepare("INSERT INTO `plus_user_wallet`(`userid`, `balance`, `update_time`) VALUES (?,?, NOW() + INTERVAL 45000 second)");
    $stmt1->bind_param('ss' , $userid, $balance);
    $stmt1->execute();
    $stmt1->close();
    $stmt->close();
}

1 个答案:

答案 0 :(得分:1)

如果其他任何地方都不需要order_number字段而您选择它,因为它在表格中,您可以使用:

insert into
plus_user_wallet
    (userid,balance,update_time) 
select 
    userid,balance,now()+interval 45000 second
from
    plus_wallet
limit
    0,3;

如果您需要一个userid值,可以通过在where userid=?

之后将from plus_wallet添加到select语句中,将其转换为预准备语句

显然,如果你确实需要在其他地方使用order_number,那么你将需要一个循环系统。

关于您的代码的一些注释:

  • 在while循环之外准备$stmt1 - 这是准备好的陈述的重点
  • 在while循环完成后关闭所有准备好的语句