sql >> データベース >  >> RDS >> Mysql

ストアドプロシージャへの入力としてのPHP配列

    あなたはただあなたの電話についてもっと賢くなければなりません。たとえば、キャッシュされたDBオブジェクトを保持することなどです。

    コードについて詳しく知らなくても(質問はかなり文字化けしています)、クエリが次のようなものである場合は次のように思われます:

    $query = "select abc from tblname where colname =" .$value; // run 10 times.
    

    あなたは本当にもっと賢いコードを書く必要があります:

    $values = array(); // Now, populate this array.  
                       // When you're done, run the query:
    $query = 'select abc from tblname where colname IN (\''.implode('\',\'', $values).'\')';
    

    一般に、これを動的SQLと呼び、今日の一般的な方法の基盤となっています。ストアドプロシージャ(または、質問の読み方に基づいて、ストアド関数)は便利な場合もありますが、SQLとのインターフェイスの1次方法としては時代遅れです。 DBの人たちはまだ時々それを誓いますが、彼らでさえ、よりスマートなクエリが常に優れているというコンセンサスにかなりよく合っていると思います。




    1. MySQL innodbを解決する方法TRUNCATETABLEのテーブルメタデータロックを待機していますか?

    2. PHPスクリプトでMySQLDBに挿入する前に、値が存在するかどうかを確認してください

    3. IDと最新の日時によるMySQLグループ

    4. 列に最適化されたデータ型を選択する方法[innodb固有]?