PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

DB_common::autoPrepare() | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

DB_common::autoPrepare()

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

Synopsis

resource autoPrepare ( string $table , array $table_fields , integer $mode = = DB_AUTOQUERY_INSERT , string $where = = false )

Description

SQL の INSERT 文あるいは UPDATE 文を自動的に組み立て、 execute() あるいは executeMultiple() で使用できるようにします。

Parameter

string $table

テーブルの名前。

array $table_fields

フィールド名を含む配列。

これらのフィールドには ? プレースホルダが 割り当てられることに中いしましょう。そのため、 execute() で渡すデータは、現在の DBMS の 要求に応じて自動的にエスケープおよびクォートが行われます。

integer $mode

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

string $where

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

Return value

resource - クエリのリソースハンドル、あるいは失敗した場合に 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.

Example

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

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$table_name   'user';
$table_fields = array('name''country');
$table_values = array('Zoe''France');

$sth $db->autoPrepare($table_name$table_fields,
                        
DB_AUTOQUERY_INSERT);

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

$res =& $db->execute($sth$table_values);

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

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

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$table_name   'user';
$table_fields = array('name''country');
$table_values = array('Bob''USA');

$sth $db->autoPrepare($table_name$table_fields,
                        
DB_AUTOQUERY_UPDATE"country = 'Japan'");

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

$res =& $db->execute($sth$table_values);

if (
PEAR::isError($res)) {
    die(
$res->getMessage());
}
?>
忘却曲線を使ってこの知識を確実に記憶に残す

フォーラムで「DB_common::autoPrepare()」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | DB_common::autoPrepare()」をGoogle検索
copyright © 1997-2024 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: