PHP,Adodb,sqlite3和AutoExecute返回错误5(SQLITE_BUSY)

时间:2016-11-01 12:00:37

标签: php sqlite adodb-php

我有点问题。我尝试使用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 个答案:

答案 0 :(得分:0)

https://github.com/ADOdb/ADOdb/issues/286中所述:

autoExecute()仅处理单个记录。试试

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

作为旁注,由于autoExecute()的开销,使用预准备语句执行此操作可能更有效。