DB_common::autoExecute()

DB_common::autoExecute() – 指定した変数に基づいて、 INSERT 文あるいは UPDATE 文を準備・実行する

Synopsis

integer autoExecute ( string $table , array $fields_values , integer $mode = = DB_AUTOQUERY_INSERT , string $where = = false )

Description

INSERT あるいは UPDATE クエリを自動的に準備し、実行します。

このメソッドは、 autoPrepare() を使用して SQL 文を 組み立て、それを execute() を使用して実行します。

Parameter

string $table

テーブルの名前。

array $fields_values

フィールド名をキーとし、フィールドの値を対応させた連想配列。

値は、現在の DBMS の 要求に応じて自動的にエスケープおよびクォートが行われます。

integer $mode

作成するクエリの型 (DB_AUTOQUERY_INSERT あるいは DB_AUTOQUERY_UPDATE)。

string $where

WHERE 句に使用する文字列。 $modeDB_AUTOQUERY_UPDATE の場合にのみ使用されます。 この文字列は直接クエリに組み込まれます。そのため、DBMS の規約に 従ってリテラルのエスケープおよびクォートを行う必要があります。

Return value

integer - 成功した場合に DB_OK、 失敗した場合に DB_Error オブジェクトを返します。

Throws

Possible PEAR_Error values
エラーコード エラーメッセージ 原因 対応法
DB_ERROR_NEED_MORE_DATA insufficient data supplied フィールド名および値を含む連想配列が空です。 連想配列の内容を調べ、修正します。
DB_ERROR_SYNTAX syntax error モードの指定が間違っています。 INSERT クエリ用の DB_AUTOQUERY_INSERT、あるいは UPDATE クエリ用の DB_AUTOQUERY_UPDATE のみが指定可能です。
DB_ERROR_NODBSELECTED no database selected データベースが選択されていません。 connect() の際の DSN を調べます。
その他のエラーコード   データベース固有のエラー。 PHP マニュアル のデータベース関連の部分を調べ、エラーの原因を判断してください。

Note

This function can not be called statically.

$data に渡す値は、リテラルである必要があります。 SQL 関数 (例えば CURDATE() など) を渡さないでください。 実行時に処理される SQL 関数は、プリペアドステートメント内に記述する 必要があります。

Example

insert モードでの autoExecute() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$table_name 'user';

$fields_values = array(
    
'id'      => 1,
    
'name'    => 'Fabien',
    
'country' => 'France'
);

$res $db->autoExecute($table_name$fields_values,
                        
DB_AUTOQUERY_INSERT);

if (
PEAR::isError($res)) {
    die(
$res->getMessage());
}
?>

update モードでの autoExecute() の使用法

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$table_name 'user';

$fields_values = array(
    
'country' => 'France',
);

$res $db->autoExecute($table_name$fields_values,
                        
DB_AUTOQUERY_UPDATE"country = 'Japan'");

if (
PEAR::isError($res)) {
    die(
$res->getMessage());
}
?>
自動コミットの有効/無効を切り替える (Previous) 指定した変数に基づいて、 INSERT 文あるいは UPDATE 文を準備する (Next)
Last updated: Thu, 17 Apr 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.