2016-11-01 8 views
1

少し問題があります。私は、自動実行を使用してクエリのカップルを実行してみてください:PHP、Adodb、sqlite3およびAutoExecuteがエラー5を返します(SQLITE_BUSY)

$rows = array(
    array(
     "text" => md5(rand(1,999)), 
     "value" => rand(1,999) 
    ), 
    array(
     "text" => md5(rand(1,999)), 
     "value" => rand(1,999) 
    ), 
    array(
     "text" => md5(rand(1,999)), 
     "value" => rand(1,999) 
    ) 
    /* [... and 10 more ...] */ 
); 

foreach ($rows as $row) 
{ 
    if ($db->AutoExecute("sometable", $row, "INSERT")) 
    { 
     echo "Done"; 
    } 
    else 
    { 
     echo "Error"; 
    } 
} 
?> 

を、私はADODBと自動実行を使用して、複数のクエリを処理するためにどのようにエラーコード番号5を得ましたか。

答えて

0

としてはhttps://github.com/ADOdb/ADOdb/issues/286で説明:

自動実行()単一のレコードを処理します。自動実行()のオーバーヘッドに、サイドノートとして

foreach($sql as $row) { 
    $db->autoExecute('test', $row, 'INSERT'); 
} 

で試してみてください、それはおそらく、より効率的に準備された文でこれを行うのですかです。

+0

私は愚かな間違いをしました。私のスクリプトではなく、ここにあります。質問はまだ立っている。 foreachループを呼び出すと、SQLITE_BUSYエラーが発生します。 – Miramar

関連する問題