1,我在使用pdo连接mysql的时候,插入数据但是出现两条一样的数据:
$dsn = sprintf("mysql:host=%s;dbname=%s;charset=utf8", $host, $dbName); $_dbHandle = new PDO($dsn, $user, $password, $option); $sql = "insert into `name` (`age`) values (18)"; $_dbHandle->exec($sql); //这样插入一次数据,但是数据库会存在两条数据;
求助,求助!
亲说执行了两遍嘛?首先你这点代码我看不出来啥。 用debug_backtrace函数检查一下,试试,另外连接数据库我们都用 Singleton 单例(单元素)模式实现 来实现的
建议改成PDO预处理参数化查询:
$sql = "insert into `name` (`age`) values (18)"; $stmt = $_dbHandle->prepare($sql); $stmt->execute(); echo $stmt->rowCount(); //查询中受影响(改动)的行数,插入失败时为0 echo $_dbHandle->lastInsertId(); //插入的自增ID,插入失败时为0
这个问题已经找到答案了~原因如下:
由于nginx的 rewrite问题,在location {}模块中,错误的语法导致项目被重复执行了两次,但是由于是同样的执行操作,我们所有的断点调试都无法检出这个问题;