apache的伪静态问题导致sql被执行2次

今天在调试数据库连接时,发现insert时会插入2次数据。

开始以为是代码移植时出现了BUG,浏览几次代码后并未发现有做多次查询的地方。

之后又以为是容器类出了错导致被引用多次,于是对DB类做了注释输出。发现程序只输出一次一切正常,可浏览mysql日志程序的确插入了2次sql。

后来终于发现当把sql写在apache或者Nginx伪静态中的文件中时,会自动转发一次url,导致sql被执行了2次。

例如

RewriteRule ^(.*)$ /index.php?realUrl=$1 [QSA,PT,L]

则sql语句在index.php中会被执行2次。


评论区