PHP + SQLite 重复插入
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 条目。
PHP 执行查询两次:第一次检查是否有任何行 returned,第二次实际 return 行。
INSERT 语句不是查询,也没有 return 行。
删除 fetchArray
调用。
我做的每一次插入都会发生两次。 我认为该页面可能会被点击两次,所以我还添加了一个计数器文件,该文件会在每次加载时递增。该页面仅被点击一次,但每次插入都被插入两次。
<?
$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 条目。
PHP 执行查询两次:第一次检查是否有任何行 returned,第二次实际 return 行。
INSERT 语句不是查询,也没有 return 行。
删除 fetchArray
调用。