2013-07-31 60 views
0
public function multiQueryInsert($query){ 
    if($this->conn->multi_query($query)){ 
     do{ 
      $this->conn->store_result(); 
      /*if($result = $this->conn->store_result()){ 
       while($row = $result->fetch_row()){ 
        return $row; 
       }*/ 
       //$result->free(); 
      //} 
      $this->conn->more_results(); 
     } 
     while($this->conn->next_result()); 
     return true; 
    } 
    else{ 
     return $this->conn->errno; 
    } 
    $this->conn->close(); 
} 

$query = "INSERT INTO `table_name`(`name`, `phone`, `address`, `email`, `cell`, `pcf`, `church`, `group`, `zone`, `dob`, `occupation`, `status`) VALUES ('$names','$phone','$address','$email','$cell','$pcf','$church','$group','$zone','$dob','$occupation','$status')"; 
$username = explode(' ',$names); 
$fname = strtolower($username[0]); 
$password = $data; 
$query .= "INSERT INTO `table_name2` (`uid`, `pswd`, `Name`, `Email`) VALUES ('$fname','$password','$names','$email')"; 

if($db->multiQueryInsert($query) === TRUE){ 
    echo '<div class="success">Partner added successfully</div>'; 
} 
else{ 
    die('Error adding partner: '.$db->conn->error); 
} 

第一個代碼是執行multi_query的方法,而其他代碼是傳遞給該方法的查詢。拋出的錯誤是Error add partner:「mysqli-> multi_query」⎼在第二個查詢處拋出sql語法錯誤

您的SQL語法錯誤;檢查對應於你的MySQL服務器版本的手冊正確的語法附近使用:

"INSERT INTO `cec_users` (`uid`, `pswd`, `Name`, `Email`) VALUES ('kjvhm,bhjkl','')" at line 1 
+0

嘗試;在第一個查詢結束時 – Anigel

+0

用';'結束查詢,就像在PHP中一樣。 MySQL必須知道,一個語句的結束和下一個語句的開始。 – Sirko

+0

你是如何管理這段代碼的?我的意思是你的結構是什麼。類聲明在哪裏? –

回答

2

嘗試第一次插入查詢這樣結束使用semicolon

$query = "INSERT INTO `table_name`(`name`, `phone`, `address`, `email`, `cell`, `pcf`, `church`, `group`, `zone`, `dob`, `occupation`, `status`) VALUES ('$names','$phone','$address','$email','$cell','$pcf','$church','$group','$zone','$dob','$occupation','$status');";