Каждая вставка, которую я делаю, происходит дважды. Я думал, что страница может попасть дважды, поэтому я также добавил файл счетчика, который будет увеличиваться при каждой загрузке. Страница только получает удар один раз, но каждая вставка вставлена дважды.PHP + SQLite duplicate inserts
<?
$x = intval(file_get_contents("./count.x"));
header("Content-type: text/plain");
$db = new SQLite3("/var/www/images/cache.db");
$statement = $db->prepare('insert into `imgCache` (name,type,data) values("test7","bmp","argh);');
$result = $statement->execute();
while ($row = $result->fetchArray(SQLITE3_ASSOC))
{
print_r($row);
}
$x++;
file_put_contents("./count.x",$x);
?>
Перед запуском этого сценария нет входа для «test7» в базе данных, и содержимое count.x является «0».
Когда я запускаю этот скрипт, происходит следующее
- count.x содержит текст «1»
- есть две записи для test7 в базе данных сейчас.
Чтение строк из запроса 'INSERT' не имеет смысла; 'INSERT' ничего не возвращают. Кроме того, использование 'SELECT COUNT (*) FROM imgCache' намного лучше, чем хранение счета в отдельном файле. –
Счетчик был средством отладки, чтобы быстро проверить, был ли сценарий дважды вызван браузером, а не приспособлением, чтобы оставаться в этом постоянно. – Trel