Query_Builder_Update クラス
(Query_Builder_Where の拡張)
Query_Builder_Update クラスは、クエリ構築のためのすべてのアップデート 操作を扱います。
これは、Query_Builder_Where クラスを拡張しており、すべてのメソッドが継承されます。
table($table)
table メソッドは、 アップデートするテーブル名をセット/変更します。
静的 |
No |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$table |
string |
必須 |
テーブル名 |
|
返り値 |
Returns the current instance. |
例 |
// update 文を準備します
$query = DB::update('users');
// アップデートするテーブル名をセット
$query->table('admins');
// UPDATE `admins` ...
|
value($column, $value)
value メソッドは、アップデートするカラム名と値をセットします。
静的 |
No |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$column |
string |
必須 |
カラム名 |
$value |
mixed |
必須 |
新しい値 |
|
返り値 |
Returns the current instance. |
例 |
// update 文を準備します
$query = DB::update('users');
// カラムに値をセット
$query->value('name', 'Frank');
// UPDATE `users` SET `name` = "Frank"
|
set(array $pairs)
set メソッドは、アップデートする複数のカラムと値をセットします。
静的 |
No |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$pairs |
array |
必須 |
カラム名と値の連想配列 |
|
返り値 |
Returns the current instance. |
例 |
// update 文を準備します
$query = DB::update('users');
// カラム名と値をセット
$query->set(array(
'name' => 'John',
'surname' => 'Doe',
));
// UPDATE `users` SET `name` = "John", `surname` = "Doe"
|
compile(\Database_Connection$db)
compile メソッドは、アップデートを行うSQL クエリを文字列で返却します。
静的 |
No |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$db |
object |
必須 |
データベース接続 |
|
返り値 |
SQL文の文字列 |
例 |
// update 文を準備します
$query = DB::update('users');
// 2つの値をセット
$query->set(array(
'name' => 'Bert',
'surname' => 'Klaassen',
));
// データベース接続を取得
$connection = Database_Connection::instance();
// SQL文を取得
$sql = $query->compile($connection);
|
reset()
reset メソッドは、現在のインスタンスのすべての値をリセットします。
静的 |
No |
パラメータ |
None
|
返り値 |
Returns the current instance. |
例 |
// update 文を準備します
$query = DB::update('users');
// 2つの値をセット
$query->set(array(
'name' => 'Bert',
'surname' => 'Klaassen',
));
// 上記をリセット
$query->reset();
// 1つ値をセット
$query->value('name', 'Hank');
// データベース接続を取得
$connection = Database_Connection::instance();
// SQL文を取得
$sql = $query->compile($connection);
// UPDATE `users` SET `name` = "Hank"
|
join($table, $type = null)
join メソッドは、JOINするテーブルを追加します。
静的 |
No |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$table |
mixed |
必須 |
table name or array($table, $alias) |
$type |
mixed |
true
|
JOINタイプ (LEFT, RIGHT, INNER, など) |
|
返り値 |
Returns the current instance. |
例 |
こちらの例を参照ください。
|
on($c1, $op, $c2)
on メソッドは、最後に作られたJOINステートメントに対し、 "ON ..." 条件を追加します。
静的 |
No |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$c1 |
mixed |
必須 |
table name or array($table, $alias) |
$op |
string |
必須 |
logical operator |
$c2 |
mixed |
必須 |
table name or array($table, $alias) |
|
返り値 |
Returns the current instance. |
例 |
// update 文を準備します
$query = DB::update('users');
// テーブルをJOIN
$query->join('profiles');
$query->on('users.id', '=', 'profiles.user_id');
// 値がエスケープされないように、 Database_Expression を使用します。
$query->value('users.profile_type', \DB::expr('`profiles`.`type`'));
// UPDATE `users` JOIN `profiles` ON `users`.`id` = `profiles`.`user_id` SET `users`.`profile_type` = `profiles`.`type`
|