今天在调试数据库连接时,发现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次。