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 (), вероятно, более эффективно сделать это с подготовленным оператором.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]