2015-12-08 91 views
0

我創建了一個php類,它能夠處理我的查詢和數據庫連接。PHP數據庫類沒有提交

我已經玩了一段時間,並做了一些研究,現在我創建了m當我使用類來處理它沒有提交,但我不明白爲什麼它doesn 't 我沒有得到任何錯誤,我的mysqli錯誤處理是正確的。

沒有人知道我的腳本有什麼問題嗎?

class sql{ 

    function convertArrayReferences($arr){ 
     $refs = array(); 
     foreach($arr as $key => $value) 
      $refs[$key] = &$arr[$key]; 
     return $refs; 
    } 
    function database($database, $query, $parameters){ 
     $result; 
     $mysqli = new mysqli("****", "****", "****", $database); 

     if(mysqli_connect_errno()){ 
      return "Connect failed: %s\n " . mysqli_connect_error(); 
     } 

     if(!$stmt = $mysqli->prepare($query)){ 
      return $mysqli->error; 
     } 

     if(!$stmt->bind_param($this->convertArrayReferences($parameters))){ 
      return $mysqli->error; 
     } 

     if(!$stmt->bind_result($result)){ 
      return $mysqli->error; 
     } 

     if(!$stmt->execute()){ 
      return $mysqli->error; 
     } 

     $stmt->close(); 

     return $mysqli->error; 
    } 
} 

的碼位在函數被調用:

$execute = $sql->database("survivalTmpReg", 
"INSERT INTO USERS (name, surname, email, username, password) VALUES (?, ?, ?, ?, ?)", 
array("sssss", $name, $surname, $email, $username, $password)); 

if($execute){ 
    $message = REGISTER_MESSAGE; 
}else{ 
    $message = $execute; 
} 
+0

你正在執行什麼SQL命令? – antiguru

+0

這一個: 插入用戶(姓名,電子郵件,用戶名,密碼)VALUES(?,?,?,?,?)@antiguru – Casper

+0

那麼,該語句不會提交。除非啓用自動提交功能,否則在顯式提交之前不應實現數據庫中的內容。 – antiguru

回答

0

語句將不會被自動提交,除非自動提交開啓

SQL類。在第一個語句中創建一個事務。除非交易沒有明確提交,否則其變更將不可見,最終交易將被系統中止。 MySQLi支持使用mysqli::commit提交事務。

+0

感謝您的回答,我已將autocommit轉換爲true,並且已插入mysqli-> commit但仍然無效,沒有任何錯誤...... – Casper

相關問題