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

私が覚えている限り、あなたは複数の更新を実行する正しい方法にいます。見逃していると思われることの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 に答える