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.