0

当我在 SELECT 中使用 multi_query 时,它看起来像这样:

$sql = 'SELECT....';
$sql .= 'SELECT....';
...

if ($db->multi_query($sql))
{ 
    do
    {
        if ($stmt = $db->store_result())
        {
            while ($row = $stmt->fetch_assoc())
            {
                foreach ($row as $key => $value)
                {
                    $var[$key] = $value;
                }
            }
            $stmt->free_result();
        }
    } while ($db->more_results() && $db->next_result());
}

但是当我只需要 DELETE 或 UPDATE 时,它应该是什么样子,因为没有结果?

$sql = 'DELETE...';
$sql .= 'DELETE...';
$sql .= 'UPDATE...';

if ($db->multi_query($sql))
{
    do
    {
        /*well.. nothing?*/
    }
    while ($db->more_results() && $db->next_result());
}

似乎工作,即使没有do {...},但没有更好/干净的解决方案吗?

4

1 回答 1

1

据我记得,您正在以正确的方式执行多个更新。您似乎错过的一件事是检查错误。例如(从这里),

if ($db->multi_query($sql))
{
  do
  {
  // do nothing, just iterate over results to make sure no errors  
  }
  while ($db->next_result());
}
if ($db->errno) {
    //error handling
}
于 2012-08-28T16:44:55.923 回答