我想知道是否有可能,我已经搜索并且没有找到任何要放弃的东西.
例如,我打算做以下事情,请注意,我不想使用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 举报,一经查实,本站将立刻删除。