微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP插入/更新多行,使用数组而不是foreach

我想知道是否有可能,我已经搜索并且没有找到任何要放弃的东西.

例如,我打算做以下事情,请注意,我不想使用foreach,因为它会将其转换为单个查询.

$a = (1,2,3);
$b = ('john','Rob','Stuffs');
$c = ('doe','roe','soe');

$sql = "update ppl set firstname = $b, lastname = $c where id = $a";

插入件也可以这样说.

$sql = "insert into ppl (firstname,lastname) value ($b,$c)";

我要执行此操作的主要原因是稍微优化了数据库.有很多单个查询(如果可以使用此方法)可以转换为1个单个查询.

提前致谢.

解决方法:

if (count($a) <= 0)
   return; // nothing to do

$sql = "INSERT INTO table (id, firstname, lastname) VALUES";
while (count($a) > 0)
{
   $id = array_shift($a);
   $fname = array_shift($b);
   $lname = array_shift($c);

   $sql .= sprintf("('%s', '%s', '%s'),", MysqL_real_escape_string($id), MysqL_real_escape_string($fname), MysqL_real_escape_string($lname));
}
$sql = substr($sql, 0, -1); //remove last comma

$sql .= " ON DUPLICATE KEY UPDATE firstname=VALUES(fname), lastname=VALUES(lname)";

//run your sql

这样您就可以一次运行所有这些程序.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐