我需要使用这样的代码来操作 mySQL 表中的条目
foreach($items as $item)
{
$sql = "UPDATE `siteims` SET refs = refs + 1 WHERE imid = '{$item->img}';";
$sql .= "UPDATE `lists` SET refs = refs + 1 WHERE lid = '{$item->lili}'";
$dbh->exec($sql);
}
$items 中可能有多达 50 个项目。此代码的一个变体是
foreach($items as $item)
{
if ('z' != $img->img)
$sql = "UPDATE `siteims` SET refs = refs + 1 WHERE imid = '{$item->img}';";
if ('z' != $item->lili)
$sql .= "UPDATE `lists` SET refs = refs + 1 WHERE lid = '{$item->lili}'";
$dbh->exec($sql);
}
在这两种情况下,我都在为 $items 中的每个项目执行一系列 SQL 语句。我的问题
- 为项目构建 $sql然后执行它不是更有效吗?
- 但是,如果 $items 中所有可能的 50 项都生成有意义的 SQL,那不意味着一批 SQL 语句执行速度非常慢吗?
- 最后,如果像我的代码的第二个版本那样执行 PHP 方面的测试,或者只是构建 SQL 并让 mySQL 处理 WHERE 测试返回空行的事实,是不是更好?
我非常感谢任何帮助。