PDO 準備済みステートメント PDOStatement オブジェクトの使用法の概要、pdopdostatement_PHP チュートリアル
PDO プリペアドステートメント PDOStatement オブジェクトの使用法の概要、pdopdostatement
PDO のプリペアド ステートメントのサポートには PDOStatement クラス オブジェクトの使用が必要ですが、このクラス オブジェクトは NEW キーワードによってインスタンス化されず、SQL ステートメントの直後に返される PDO オブジェクトの prepare() メソッドを通じてデータベース サーバーで準備されます。 。以前に PDO オブジェクトで query() メソッドを実行することによって返された PDOStatement クラス オブジェクトが結果セット オブジェクトのみを表す場合。また、PDO オブジェクト内の prepare() メソッドを実行して生成される PDOStatement クラス オブジェクトがクエリ オブジェクトの場合、パラメータ化された SQL コマンドを定義して実行できます。 PDOStatement クラスのすべてのメンバー メソッドは次のとおりです:
PDOStatement::bindColumn — 列を PHP 変数にバインドする
PDOStatement::bindParam — パラメーターを指定された変数名にバインドします
PDOStatement::bindValue — 値をパラメータにバインドする
PDOStatement::closeCursor — ステートメントを再度実行できるようにカーソルを閉じます。
PDOStatement::columnCount — 結果セット内の列の数を返す
PDOStatement::debugDumpParams — SQL 前処理コマンドを出力する
PDOStatement::errorCode — 最後のステートメント ハンドル操作に関連付けられた SQLSTATE を取得します
PDOStatement::errorInfo — 最後のステートメント ハンドル操作に関連する拡張エラー情報を取得します
PDOStatement::execute — 準備されたステートメントを実行します
PDOStatement::fetch — 結果セットから次の行を取得します
PDOStatement::fetchAll — 結果セット内のすべての行を含む配列を返す
PDOStatement::fetchColumn — 結果セットの次の行から 1 つの列を返します。
PDOStatement::fetchObject — 次の行を取得し、オブジェクトとして返します。
PDOStatement::getAttribute — ステートメント属性を取得する
PDOStatement::getColumnMeta — 結果セット内の列のメタデータを返す
PDOStatement::nextRowset — 複数行セット ステートメント ハンドルの次の行セットに進みます
PDOStatement::rowCount — 前の SQL ステートメントの影響を受けた行数を返します
PDOStatement::setAttribute — ステートメント属性を設定する
PDOStatement::setFetchMode — ステートメントのデフォルトのフェッチ モードを設定します。
1. 明細書を準備します
反復ごとに異なるパラメータを使用して SQL クエリを繰り返し実行する場合、準備されたステートメントが最も効率的です。プリペアドステートメントを使用するには、まずデータベースサーバーに「SQL ステートメント」を準備する必要がありますが、すぐに実行する必要はありません。 PDO は、この前処理された SQL ステートメントに変数をバインドするための「プレースホルダー」構文の使用をサポートしています。準備された SQL ステートメントの場合、実行のたびに一部の列の値を変更する必要がある場合は、特定の列の値の代わりに「プレースホルダー」を使用する必要があります。 PDO でプレースホルダーを使用するには、「名前付きパラメータ」と「疑問符パラメータ」の 2 つの構文があります。どちらの構文を使用するかは個人の好みによって異なります。
名前付きパラメータをプレースホルダーとして使用する INSERT ステートメント:
$dbh->prepare(“連絡先情報(名前,住所,電話)の値(:名前,:住所,:電話)に挿入”);
文字列を「名前付きパラメータ」としてカスタマイズする必要があります。各名前付きパラメータはコロン (:) で始まる必要があり、対応するフィールド名と同じ名前にするのが最善です。
疑問符 (?) パラメーターをプレースホルダーとして使用する INSERT ステートメント:
$dbh->prepare(“連絡先情報(名前,住所,電話)の値(?,?,?)に挿入”);
疑問符パラメータは、フィールドの位置順序に対応している必要があります。どのパラメータがプレースホルダで構成されるクエリとして使用されるか、ステートメントでプレースホルダが使用されないかに関係なく、PDO オブジェクトの prepare() メソッドを使用して、反復実行に使用されるクエリを準備する必要があります。 PDOStatement クラスのオブジェクト。
2. バインドパラメータ
SQL ステートメントが PDO オブジェクトの prepare() メソッドを通じてデータベース サーバー上で準備される場合、プレースホルダーが使用されている場合、入力パラメーターは実行されるたびに置き換える必要があります。 PDOStatement オブジェクトのbindParam() メソッドを使用して、パラメーター変数を準備されたプレースホルダーにバインドできます (位置または名前が対応している必要があります)。メソッドbindParame()のプロトタイプは次のとおりです:
bool PDOStatement::bindParam (mixed $parameter ,mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [,mixed $driver_options ]]] )
最初のパラメータ パラメータは必須です。プレースホルダ構文が準備されたクエリで名前付きパラメータを使用する場合、名前付きパラメータ文字列は、bindParam() メソッドの最初のパラメータとして提供されます。プレースホルダー構文で疑問符引数を使用する場合、準備されたクエリ内の列値プレースホルダーのインデックス オフセットが最初の引数としてメソッドに渡されます。
2 番目のパラメーター変数もオプションであり、最初のパラメーターで指定されたプレースホルダーの値を提供します。パラメーターは参照によって渡されるため、値を直接指定することはできず、変数のみをパラメーターとして指定できます。
3 番目のパラメーター data_type はオプションで、現在バインドされているパラメーターのデータ型を設定します。次の値を指定できます。
PDO::PARAM_BOOL はブールデータ型を表します。
PDO::PARAM_NULL は SQL の NULL 型を表します。
PDO::PARAM_INT は、SQL の INTEGER データ型を表します。
PDO::PARAM_STR は、SQL の CHAR、VARCHAR、およびその他の文字列データ型を表します。
PDO::PARAM_LOB は、SQL のラージ オブジェクト データ型を表します。
4 番目のパラメーターの長さはオプションであり、データ型の長さを指定するために使用されます。
5 番目のパラメータ driver_options はオプションであり、データベース ドライバ固有のオプションが指定されます。
名前付きパラメーターをプレースホルダーとして使用したパラメーター バインディングの例:
//...PDO 接続データベース コードを省略します
$query = "連絡先情報 (名前,住所,電話) の値(:名前,:住所,:電話)に挿入";
$stmt = $dbh->prepare($query); //PDO オブジェクトの prepare() メソッドを呼び出します
$stmt->blinparam(':name',$name); //変数 $name の参照を、準備されたクエリ名パラメーター ":name" にバインドします
$stmt->blinparam(':アドレス',$アドレス);
$stmt->blinparam(':phone',phone);
//...
?>
疑問符 (?) をプレースホルダーとして使用したパラメーター バインディングの例:
//...PDO 接続データベース コードを省略します
$query = "連絡先情報 (名前、住所、電話番号) の値 (?,?,?) に挿入";
$stmt = $dbh->prepare($query); //PDO オブジェクトの prepare() メソッドを呼び出します
$stmt->blinparam(1,$name,PDO::PARAM_STR); //変数 $name の参照を、準備されたクエリ名パラメーター ":name" にバインドします
$stmt->blinparam(2,$address,PDO::PARAM_STR);
$stmt->blinparam(3,phone,PDO::PARAM_STR,20);
//...
?>
3. 準備されたステートメントを実行します
準備されたステートメントが完了し、対応するパラメーターがバインドされたら、PDOStatement クラス オブジェクトのexecute() メソッドを呼び出すことで、データベース キャッシュに準備されたステートメントを繰り返し実行できます。次の例では、前処理を使用して、前に提供した contactinfo テーブルで同じ INSERT ステートメントを継続的に実行し、異なるパラメーターを変更することで 2 つのレコードを追加します。以下に示すように:
試してみてください{
$dbh = 新しい PDO('mysql:dbname=testdb;host=localhost', $username, $passwd);
}キャッチ (PDOException $e){
echo 'データベース接続に失敗しました:'.$e->getMessage();
終了します;
}
$query = "連絡先情報 (名前、住所、電話番号) の値 (?,?,?) に挿入";
$stmt = $dbh->prepare($query);
$stmt->blinparam(1,$name); $stmt->blinparam(2,$address);
$stmt->blinparam(3,phone);
$name = "趙 XX";
$address = "海淀区中関村";
$phone = "15801688348";
$stmt->execute(); //実行パラメータがバインドされた後の準備されたステートメント
?>
//...PDO 接続データベース コードを省略します
$query = "連絡先情報 (名前、住所、電話番号) の値 (?,?,?) に挿入";
$stmt = $dbh->準備($query);
// 配列を渡して、前処理されたクエリ内の名前付きパラメータに値をバインドし、1 回実行します。
$stmt->execute(array("趙 XX","海淀区","15801688348"));
?>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP は、長い間使用されている人気のある Web 開発言語です。 PHP に統合された PDO (PHP Data Object) クラスは、Web アプリケーションの開発中にデータベースと対話する一般的な方法です。ただし、一部の PHP 開発者がよく遭遇する問題は、PDO クラスを使用してデータベースと対話するときに、次のようなエラーが表示されることです。

PHP は人気のあるプログラミング言語として、Web 開発の分野で広く使用されています。その中でも、PHP の PDO_PGSQL 拡張機能は一般的に使用されている PHP 拡張機能で、PostgreSQL データベースとの対話型インターフェイスを提供し、PHP と PostgreSQL 間のデータ送信と対話を実現できます。この記事では、PHPのPDO_PGSQL拡張機能の使い方を詳しく紹介します。 1. PDO_PGSQL 拡張機能とは何ですか? PDO_PGSQL は PHP の拡張ライブラリです。

PHP と PDO: バッチ挿入およびバッチ更新を実行する方法 はじめに: PHP を使用してデータベース関連アプリケーションを作成する場合、データをバッチ挿入および更新する必要がある状況によく遭遇します。従来のアプローチでは、ループを使用して複数のデータベース操作を実行しますが、この方法は非効率的です。 PHP の PDO (PHPDataObject) は、バッチ挿入および更新操作を実行するためのより効率的な方法を提供します。この記事では、PDO を使用してバッチ挿入および更新操作を実装する方法を紹介します。 1. PDO の概要: PDO は PH です

PDOPDO は、PHP に統合インターフェイスを提供するオブジェクト指向のデータベース アクセス抽象化レイヤーであり、同じコードを使用して異なるデータベース (Mysql、postgresql、oracle など) と対話できるようにします。 PDO は、基礎となるデータベース接続の複雑さを隠し、データベース操作を簡素化します。長所と短所 長所: 統一されたインターフェイス、複数のデータベースのサポート、データベース操作の簡素化、開発の困難さの軽減、プリペアドステートメントの提供、セキュリティの向上、トランザクション処理のサポート 短所: パフォーマンスはネイティブ拡張よりわずかに低い場合があり、外部ライブラリに依存し、オーバーヘッドが増加する可能性があります。デモ コードでは PDO を使用します。 mysql データベースに接続します: $db=newPDO("mysql:host=localhost;dbnam

PHP と PDO: データベースで JSON データを処理する方法 現代の Web 開発では、大量のデータを処理して保存することが非常に重要なタスクです。モバイル アプリケーションとクラウド コンピューティングの人気に伴い、JSON (JavaScript Object Notation) 形式でデータベースに保存されるデータがますます増えています。一般的に使用されるサーバー側言語として、PHP の PDO (PHPDataObject) 拡張機能は、データベースを処理および操作するための便利な方法を提供します。本

PHP と PDO: ページ内のデータをクエリして表示する方法 Web アプリケーションを開発する場合、ページ内のデータをクエリして表示することは非常に一般的な要件です。ページングにより、一度に一定量のデータを表示できるため、ページの読み込み速度とユーザー エクスペリエンスが向上します。 PHP では、PHP データ オブジェクト (PDO) ライブラリを使用して、ページング クエリとデータの表示の機能を簡単に実現できます。この記事では、PHP で PDO を使用してページごとにデータをクエリおよび表示する方法と、対応するコード例を紹介します。 1. データベースとデータテーブルを作成する

PHP と PDO: データベースで全文検索を実行する方法 最新の Web アプリケーションでは、データベースは非常に重要なコンポーネントです。全文検索は、大量のデータから特定の情報を検索する必要がある場合に非常に便利な機能です。 PHP および PDO (PHPDataObjects) は、データベース内で全文検索を実行するためのシンプルかつ強力な方法を提供します。この記事では、PHP と PDO を使用して全文検索を実装する方法を紹介し、そのプロセスを示すサンプル コードをいくつか紹介します。初め

PDO を使用して Redis データベースに接続する方法 Redis は、キャッシュ、キュー、その他のシナリオで一般的に使用される、オープン ソースの高性能のメモリ内ストレージのキー/値データベースです。 PHP 開発では、Redis を使用すると、アプリケーションのパフォーマンスと安定性を効果的に向上させることができます。 PDO (PHPDataObjects) 拡張機能を使用すると、Redis データベースに接続して操作することがより便利になります。この記事では、PDO を使用して Redis データベースに接続する方法をコード例とともに紹介します。最初に Redis 拡張機能をインストールします
