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

Codeigniter simple_queryとクエリビルダー(挿入、更新、削除)

    simple_query() ご指摘のとおりに動作するCodeIgniterの唯一のデータベースメソッドです。ドキュメントに記載されているように、「ほとんどのユーザーがこの機能を使用することはめったにありません。」

    いくつかの例外を除いて、他のすべてのクエリビルダーメソッドはDB_query_builderのいずれかを返します インスタンスCI_DB_result オブジェクトまたは-「書き込み」タイプのクエリの場合-成功または失敗を示すブール値。いくつかの例外は、整数、文字列、または混合(値またはFALSE)を返します。

    入力値を受け入れるすべてのメソッドは、提供された値をエスケープします(またはオプションでエスケープしません)。

    クエリビルダー(QB)は優れたツールですが、多くの場合、必要ありません。 $this->db->query('your statement here');を使用する 多くの場合、より効率的です。 QBの目標は、db->query('a query string');の呼び出しで文字通り使用される文字列を作成することです。 。

    したがって、これをすべて入力する代わりに...

    $this->db->select('id, name, email');
    $this->db->from('customers');
    $this->db->where('id', $id)
    $this->db->where('active', $is_active)
    $query = $this->get();
    $result = $query->result();
    

    次のように入力すると、QBが上記のコードで作成したクエリ文字列が直接提供されるため、上記とまったく同じ結果が得られます。 (クエリも完全にエスケープされます。)しかし、そこに到達するために実行されるコードは1トン少なくなります。 (タイピングを減らします。)

    $query = $this->db->query("Select id, name, email from customers where id = ? and active = ?", [$id, $is_active]);
    $result = $query->result();
    

    これは、クエリバインディング の使用例です。

    コアソースコード(主に「ドライバー」ファイル内)を調べると、simple_query()を使用する場所がわかります。 適切で便利です。




    1. MariaDBに存在する場合のドロップテーブル

    2. MySQLワークベンチでは、接続用のユーザー名/パスワードは何ですか?

    3. OracleManagedODP.NETがtnsnames.oraを見つけることができません

    4. MySQLのリストのサブセットに対する選択