2012-02-13 144 views
0

我是PHP新手,想知道是否有人可以舉例說明如何改進此代碼?提高sql查詢函數性能

public function createContent($title, $content, $category_id){ 
     try { 
      $user_id = $_SESSION["user_id"]; 
      if(!$user_id){ 
       return(false); 
      } 
      $sql = "INSERT INTO content (title, content, user_id, category_id) 
        VALUES (:title, :content, :user_id, :category_id)"; 
      $query = $this->_db->prepare($sql); 
      $execute_array = array(
       ':title' => $title, 
       ':content' => $content, 
       ':user_id' => $user_id, 
       ':category_id' => $category_id 
      ); 
      $query->execute($execute_array); 
     } 
     catch(PDOException $e){ 
      echo $e->getMessage(); 
     } 
    } 
+0

你單挑這種方法因特殊原因?即你是否已經知道這種方法比應該更慢/更耗費資源? – VolkerK 2012-02-13 10:39:43

+0

我看起來很好。如果你做了100個插入,那麼將它們「散裝」成1個更大的插入可能是一個好主意,但是如果它是臨時的,那麼你的代碼看起來不錯。 – FreudianSlip 2012-02-13 10:40:05

+2

如果您多次調用此函數,只需調用'_db-> prepare'一次,因爲這可能是您可能考慮的唯一因素。 – Benoit 2012-02-13 10:40:13

回答

0

你是什麼意思與提高? 如果你的表只有「title,content,user_id,category」,你可以這樣做: 「insert into content(:title,:content,:user_id,:category)」;

,但最好的建議是準備語句,這將有助於你避免SQL注入