PHP, Adodb, sqlite3 и AutoExecute возвращает ошибку 5 (SQLITE_BUSY)

У меня небольшая проблема. Я пытаюсь выполнить пару запросов, используя AutoExecute:

$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";
    }
}
?>

и я получил код ошибки № 5. Как обрабатывать несколько запросов, используя Adodb и AutoExecute?

1 ответ

Как объяснено в https://github.com/ADOdb/ADOdb/issues/286:

autoExecute () обрабатывает только одну запись. Попробуй с

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

Как примечание, из-за издержек autoExecute(), вероятно, более эффективно сделать это с подготовленным оператором.

Другие вопросы по тегам