PHP + SQLite дубликаты вставок

Каждая вставка, которую я делаю, происходит дважды.
Я подумал, что страница может попасть дважды, поэтому я также добавил файл счетчика, который будет увеличиваться при каждой загрузке. Страница получает только один раз, но каждая вставка вставляется дважды.

<?
$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».

Когда я запускаю этот скрипт, происходит следующее

  1. count.x содержит текст «1»
  2. в базе данных теперь есть две записи для test7.

1

Решение

PHP выполняет запросы дважды: один раз, чтобы проверить, возвращены ли какие-либо строки, и второй раз, чтобы фактически вернуть строки.

Оператор INSERT не является запросом и не возвращает строки.
Удалить fetchArray вызов.

2

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

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

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