2012-02-13 7 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

+0

それは私にはうまく見えます。もし100のインサートをしているのであれば、1つの大きなインサートにそれらを一括して入れるのは良い考えかもしれませんが、それがアドホックであれば、あなたのコードは良く見えます。 – FreudianSlip

+2

この関数を何回か呼び出した場合は、おそらくこれが原因である可能性が高いため、 '_db-> prepare'を一度呼び出すと、その外にあります。 – Benoit

答えて

0

改善してどういう意味ですか? "あなたのテーブルに" title、content、user_id、category "しかない場合は "コンテンツに挿入してください(:title、:content、:user_id、:category) "; SQLインジェクション

関連する問題