FuelPHPでSQLを実行する

PCのスペックが低いため、VMwareを起動するだけでメモリが全く足りない感じの今日この頃です。
スペックが低い状態でも快適に作業を進める方法がないかを模索していますので、そのあたりの内容についても今後記事に出来たらと思います。

 

さて、本題のFuelPHPでSQLを実行する(ORMを利用せず)場合にはDB::queryメソッドを利用します。

SQLを実行する際に、パラメータを必要としない場合には下記のように実行します。

// 実行するSQL
$sql = 'SELECT * FROM tables';
$query = DB::query($sql);

// SQLを実行する
$result = $query->execute();

 

ただし、このままではview側でそのまま利用することができません。
利用するためには、下記のように実行結果を配列で受け取れるよう、as_arrayメソッドを利用する必要があります。

$result = $query->execute()->as_array();

 

次に、実行するSQLにパラメータを必要とする場合には下記のようにparamメソッドを利用し、パラメータを設定する必要があります。

// 実行するSQL
$sql = 'SELECT * FROM tables WHERE id = :id';
$query = DB::query($sql);

// パラメータを利用する場合
$query->param('id', $id);

// SQLを実行する
$result = $query->execute()->as_array();

 

パラメータが複数の場合には、parametersメソッドを利用します。

// 実行するSQL
$sql = 'SELECT * FROM tables WHERE id = :id AND name = :name';
$query = DB::query($sql);

// パラメータを利用する場合
$params = array('id' => $id, 'name' => $name);
$query->parameters($params);

// SQLを実行する
$result = $query->execute()->as_array();

 

ORMを利用することで実行が簡易になる部分もありますが、ちょっと複雑なSQLを実行する場合や、速度を優先する場合には直接SQLを記載して実行した方が良い場合があります。

利用する個所を選別しつつ、ORMとの使い分けが出来ればコードもきれいに書けるはずです。

関連する記事

記事へのコメント (1 件)

  1. […] >>FuelPHPでSQLを実行する | CoDE4U Author: […]

コメントを残しませんか?