我有一個奇怪的問題,在我的mysql發生在一個特定的表!MySQLi奇怪的行爲 - 顯示插入成功,但沒有記錄在表
我有一個DB類如下...
// Class: Database
class Database {
private $_connection;
private static $_instance; //The single instance
private $_error = '';
/*
SingleTon function to return DB Instance.
*/
public static function getInstance() {
if(!self::$_instance) { // If no instance then make one
self::$_instance = new self();
}
return self::$_instance;
}
// Constructor
private function __construct() {
global $db_host;
global $db_username;
global $db_password;
global $db_database;
$this->_connection = new mysqli($db_host, $db_username, $db_password, $db_database);
// Error handling
if(mysqli_connect_error()) {
$this->_error = "Failed to conencto to MySQL: " . mysql_connect_error();
}
}
// Get mysqli connection
public function getConnection() {
return $this->_connection;
}
}
?>
我在其他類,我需要DB動作我使用下面的構造函數...
$db = Database::getInstance();
$this->mysql = $db->getConnection();
並遵循我使用$ this-> mysql-> query(「INSERT_QUERY」)插入數據。最後我使用$ this-> mysql-> insert_id來查看插入是否有成功返回的id或不在...在執行插入操作時,我獲得了成功的自動遞增ID作爲輸出。但是,如果我通過PHPMyAdmin工具看到數據庫,數據庫是空的!即使在選擇查詢也沒有得到什麼......但如果我保持插入數據,我會得到自動遞增值的輸出!
更多在這一發生在一個表中。有很少的其他表在哪裏我做相同的插入操作,並確實正常工作!
所有表都在INNODB引擎上。
只是爲了測試我做刪除特定的表,但我仍然得到相同的自動遞增值與出錯的消息,該表不存在!但如果我更改數據庫名稱它會引發錯誤,確認連接指向同一個數據庫。
這真的很奇怪......有沒有人遇到過類似的問題?
檢查您是否更改了連接的自動提交功能。也許在關閉連接後發生'回滾'。 – wajeeh
嗨wajeeh,謝謝你的回覆。你能解釋一下嗎?我是否需要設置自動提交'ON'以使查詢正常工作?實際上,在我的程序中,3個插入操作發生在3個不同的表格上...其他2個表格數據看起來很好,只是在一個表格中表現出奇怪的表現! –
在這種情況下,我不認爲這是問題,沒有查看代碼我們不能幫你,對不起。 – wajeeh