php操作sqlite sql语句执行两次的问题

现在用php连接sqlite实现数据库查询,
function sqlite3_query($sql)
{
$db = @new SQLite3("./data_XX/data.db");
if (!$db) die("Database Error! Please Check!.\n");
$result = $db->query($sql);
$arr=result->fetchArray();

$db->close();
return $arr;
}

这样的操作当执行sqlite3_query("insert into abc(test) values('$a')");
时候这条语句被插入了两次,求解释这样怎么办呢,现在知道可能是result->fetchArray();时候又执行了一次sql,但是这个函数还是要执行查询获得查询结果的数组,怎么样在不增加函数的情况下让他查询的时候只查询一次呢

第1个回答  2013-09-12
我觉得,你这个方法对插入并不适用啊。插入返回的没有结果集,只有成功与失败。那你执行之后,还去fetchArray() 。这个就不好了吧。插入的时候,不需要去取这个啊。你应该要判断一下传进来的SQL。如果是 SELECT 开头的,则执行这句。如果是非SELECT ,比如 INSERT UPDATE DELETE 那么就不需要去执行那句。而是直接返回 $result 就行了。你的执行两句,有可能就是这个不需要执行的地方引起的。你自己加个判断,处理一下。看看是否还会插入两条记录。
第2个回答  2013-09-12
我感觉应该不是你的php函数的原因,应该是你的静态页面重复提交了,你如果是谷歌浏览器的话,你可以右击空白处,审查元素,NetWork,这个时候,再次提交,看看是不是网络信息提交了两次显示,

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网