这不是重复的问题。
不同的是来自其他问题:
- 我的情况是,它有效 没有任何例外。
我想知道我需要检查哪个部分。
我的开发环境如下:
- php7
- MySQL5.7
对于php中的sql进程,我使用PDO。
以下是源代码片段。
$this->conn = new PDO('mysql:host='. $server. ';dbname='. $database, $username, $password); $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $this->conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $this->conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); try { $this->conn->beginTransaction(); $total_amt = 100; $sql = "INSERT INTO test_table (total_amt)" ." VALUES (:total_amt)"; $stmt_test = $this->conn->prepare($sql); $stmt_test->bindParam (':total_amt', $total_amt, PDO::PARAM_INT); $stmt_test->execute(); $inserted_id = $this->conn->lastInsertId(); $this->conn->commit(); } catch (PDOException $ex) { $this->conn->rollBack(); exit(); } catch (Exception $e) { $this->conn->rollBack(); exit(); } finally { $closeDB(); // this is a function to close database connection }
主要插入数据,但有时未插入数据。
我的问题是......当它有时不起作用时,我需要检查哪一部分?
我登录了'try'语句和'catch'语句并且insert语句运行了,我也得到了'inserted_id',没有例外。
然而,当我检查表中的数据时,没有数据。
如果它总是发生,我会理解,但有时会发生。
我是php的新手,如果有人知道原因,请告诉我。