Как предотвратить блокировку sqlite3_ php db при большом вводе данных? - PullRequest
0 голосов
/ 16 апреля 2020

Я использую sqlite3 с PHP для проекта. Я пытаюсь импортировать большой анализ данных JSON из API и вставить в локальный sqlite. Вот мой код summery-

$obj  = json_decode($response);

foreach ($obj as $prt) {

$db = new SQLite3('user.db');
$db->busyTimeout(5000);

$xname=$prt->name;
$xage=$prt->age;
$xsex=$prt->sex;
$xaddress=$prt->address;
$xmobile=$prt->mobile;

$name=SQLite3::escapeString($xname);
$age=SQLite3::escapeString($xage);
$sex=SQLite3::escapeString($xsex);
$address=SQLite3::escapeString($xaddress);
$mobile=SQLite3::escapeString($xmobile);

$insert = "INSERT INTO `customer` (
name,
age,
sex,
address,
mobile

) VALUES (
'$name',
'$age',
'$sex',
'$address',
'$mobile'
)";

$statement = $db->prepare($insert);
$statement->execute();  

$db->close();
unset($db); 

}

Код работает нормально. Проблема в том, что это вызывает частые блокировки БД. Размер импортируемых данных составляет около 2000 строк. Если я закрываю окно во время обновления, это также вызывает блокировку БД. Другие функции программного обеспечения также не работают во время импорта. Я спрашиваю, что было бы лучше всего импортировать большие данные без блокировки БД?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...