Query_Builder_Update クラス
(Query_Builder_Where の拡張)
Query_Builder_Update クラスは、クエリ構築のためのすべてのアップデート 操作を扱います。
これは、 Query_Builder_Where クラスを拡張しており、すべてのメソッドが継承されます。
table($table)
table メソッドは、 アップデートするテーブル名をセット/変更します。
静的 |
いいえ |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$table |
string |
必須 |
テーブル名 |
|
返り値 |
現在のインスタンスを返します。 |
例 |
// update 文を準備
$query = DB::update('users');
// アップデートするテーブル名をセット
$query->table('admins');
// UPDATE `admins` ...
|
value($column, $value)
value メソッドは、アップデートするカラム名と値をセットします。
静的 |
いいえ |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$column |
string |
必須 |
カラム名 |
$value |
mixed |
必須 |
新しい値 |
|
返り値 |
現在のインスタンスを返します。 |
例 |
// update 文を準備
$query = DB::update('users');
// カラムに値をセット
$query->value('name', 'Frank');
// UPDATE `users` SET `name` = "Frank"
|
set(array $pairs)
set メソッドは、アップデートする複数のカラムと値をセットします。
静的 |
いいえ |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$pairs |
array |
必須 |
カラム名と値の連想配列 |
|
返り値 |
現在のインスタンスを返します。 |
例 |
// 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 クエリを文字列で返却します。
静的 |
いいえ |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$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 メソッドは、現在のインスタンスのすべての値をリセットします。
静的 |
いいえ |
パラメータ |
なし
|
返り値 |
現在のインスタンスを返します。 |
例 |
// 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 するテーブルを追加します。
静的 |
いいえ |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$table |
mixed |
必須 |
テーブル名か、 array($table, $alias) |
$type |
mixed |
true
|
JOIN タイプ (LEFT, RIGHT, INNER, など) |
|
返り値 |
現在のインスタンスを返します。 |
例 |
こちらの例を参照ください。
|
on($c1, $op, $c2)
on メソッドは、最後に作られた JOIN ステートメントに対し、 "ON ..." 条件を追加します。
静的 |
いいえ |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$c1 |
mixed |
必須 |
テーブル名か、 array($table, $alias) |
$op |
string |
必須 |
論理演算子 |
$c2 |
mixed |
必須 |
テーブル名か、 array($table, $alias) |
|
返り値 |
現在のインスタンスを返します。 |
例 |
<<<<<<< HEAD
// update 文を準備
=======
// prepare an update statement
>>>>>>> 1.8/master
$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`
|
and_on()
The and_on method is an alias for on.
or_ on($c1, $op, $c2)
The on method adds "OR ON ..." conditions for the last created JOIN statement.
Static |
No |
Parameters |
Param |
Type |
Default |
Description |
$c1 |
mixed |
required |
table name or array($table, $alias) |
$op |
string |
required |
logical operator |
$c2 |
mixed |
required |
table name or array($table, $alias) |
|
Returns |
Returns the current instance. |
Example |
// prepare an update statement
$query = DB::update('users');
// Join a table
$query->join('profiles');
$query->on('users.id', '=', 'profiles.user_id');
// Add an OR ON condition
$query->or_on('users.id', '=', 'profiles.other_id');
// Use a Database_Expression so the value does not get escaped.
$query->value('users.profile_type', \DB::expr('`profiles`.`type`'));
// UPDATE `users` JOIN `profiles` ON `users`.`id` = `profiles`.`user_id` OR `users`.`id` = `profiles`.`other_id` SET `users`.`profile_type` = `profiles`.`type`
|
on_open()
The on_open method adds an open bracket for the last created JOIN statement.
Static |
No |
Parameters |
None
|
Returns |
Returns the current instance. |
Example |
See below
|
on_close()
The on_close method adds an closing bracket for the last created JOIN statement.
Static |
No |
Parameters |
None
|
Returns |
Returns the current instance. |
Example |
// prepare a select statement
$query = DB::update('users');
// Join a table
$query->join('profiles');
$query->on('users.id', '=', 'profiles.user_id');
// Add some nested conditions
$query->on_open()
->on('profiles.status', '=', DB::expr('A')
->or_on('profiles.status', '=', DB::expr('B')
->on_close();
// Use a Database_Expression so the value does not get escaped.
$query->value('users.profile_type', \DB::expr('`profiles`.`type`'));
// UPDATE `users` JOIN `profiles` ON `users`.`id` = `profiles`.`user_id`
// AND (`profiles`.`status` = "A" OR `profiles`.`status` = "B"))
// SET `users`.`profile_type` = `profiles`.`type`
|
and_on()
The and_on method is an alias for on.