ホームページ > バックエンド開発 > PHPの問題 > PHPデータベース学習でPDO属性を設定および取得するにはどうすればよいですか?

PHPデータベース学習でPDO属性を設定および取得するにはどうすればよいですか?

WBOY
リリース: 2023-03-13 14:56:02
オリジナル
2253 人が閲覧しました

前回の記事では『 PHPデータベース学習のPDOでエラーを処理するには? 」では、PHP での PDO エラー処理に関する関連知識が詳しく紹介されています。この記事では、PHP で PDO 属性を設定および取得する方法を見てみましょう。みんなが助けてくれることを願っています!

PHPデータベース学習でPDO属性を設定および取得するにはどうすればよいですか?

前の記事では、PHP での PDO エラー処理に関連する問題について学びました。次に、PDO 属性を設定および取得する方法を学びましょう。 PDO オブジェクトには、PDO の動作を調整したり、基礎となるドライバーの状態を取得したりするために使用できるプロパティが多数あります。

PDO オブジェクトの作成時にコンストラクターの最後のパラメーターに属性オプションが設定されていない場合は、オブジェクトの作成後に PDO オブジェクトで setAttribute() および # を使用できます。 ##getAttribute() これらの属性の値を設定および取得するメソッド。次に、これら 2 つの方法を一緒に見てみましょう。

<strong>getAttribute()<span style="font-size: 20px;"></span></strong> メソッド

getAttribute () メソッドはパラメーターを 1 つだけ提供する必要があり、このパラメーターを表す特定の属性名を渡すことができます。実行が成功すると、属性で指定された値が返され、それ以外の場合は NULL が返されます。理解するのは簡単ですが、その構文形式は次のとおりです:

PDO::getAttribute(int $attribute)
ログイン後にコピー

注意する必要があるのは:

パラメータ

$attribute PDO:: ATTR_* 定数の 1 つです。データベース接続に適用される定数は多数あります。

最初に例を見てから、概要を説明します。例は次のとおりです:

<?php
    header("Content-Type: text/html;charset=utf-8");
    $opt = [PDO::ATTR_PERSISTENT=>TRUE];
    try{
        $pdo = new PDO(&#39;mysql:dbname=test;host=127.0.0.1&#39;,&#39;root&#39;,&#39;root&#39;,$opt);
    }catch(PDOException $e){
        echo &#39;数据库连接失败:&#39;.$e->getMessage();
        exit();
    }
    echo &#39;PDO 是否关闭自动提交功能:&#39;.$pdo -> getAttribute(PDO::ATTR_AUTOCOMMIT);
    echo &#39;<br>当前 PDO 的错误处理模式:&#39;.$pdo -> getAttribute(PDO::ATTR_ERRMODE);
    echo &#39;<br>表字段字符的大小写转换:&#39;.$pdo -> getAttribute(PDO::ATTR_CASE);
    echo &#39;<br>空字符串转换为 SQL 的 null:&#39;.$pdo -> getAttribute(PDO::ATTR_ORACLE_NULLS);
    echo &#39;<br>应用程序提前获取数据大小:&#39;.$pdo -> getAttribute(PDO::ATTR_PERSISTENT);
?>
ログイン後にコピー

出力結果:


PHPデータベース学習でPDO属性を設定および取得するにはどうすればよいですか?

上記の結果をもとにまとめると:

PDO::ATTR_AUTOCOMMIT は次のことを示しますPDO が自動送信機能をオフにするかどうか。 PDO::ATTR_ERRMODE は現在の PDO エラー処理モードを表します。 PDO::ATTR_CASE はテーブル フィールド文字の大文字と小文字の変換を表します。 PDO ::ATTR_ORACLE_NULLS は空文字列を SQL null に変換することを意味し、PDO::ATTR_PERSISTENT はアプリケーションが事前にデータ サイズを取得することを意味します。

さらに、データベース接続に適用される一般的に使用される定数をいくつかまとめておきます。

  • PDO::ATTR_CONNECTION_STATUS 固有の情報を表します。接続ステータスに関係します。

  • PDO::ATTR_SERVER_INFO データベース固有のサーバー情報を表します。

  • PDO::ATTR_SERVER_VERSION データベース サーバーのバージョン番号を表します。

  • PDO::ATTR_CLIENT_VERSION データベース クライアントのバージョン番号を表します。

getAttribute() メソッドを理解したところで、setAttribute() メソッドの関連知識を見てみましょう。一緒に見ていきましょう。

<strong>setAttribute()<span style="font-size: 20px;"></span></strong> メソッド

setAttribute () このメソッドは、データベース ハンドルの属性を設定するために使用できます。setAttribute() は getAttribute() よりも少し複雑です。その構文形式は次のとおりです:

PDO::setAttribute(int $attribute, mixed $value)
ログイン後にコピー


このメソッドには 2 つのパラメータが必要です。最初のパラメータ

$attribute は PDO オブジェクトの特定の属性名を提供し、2 番目のパラメータ $value is この指定されたプロパティに値を割り当てます。

PDO::ATTR_CASE は、列名を指定された大文字と小文字に強制できることを意味し、PDO::CASE_LOWER は列名が強制的に小文字になることを意味します。PDO:: CASE_NATURAL は、データベース ドライバーによって返された列名が保持されることを意味します。;PDO::CASE_UPPER は、列名を強制的に大文字にすることを意味します。

PDO::ATTR_ERRMODE はエラー レポートを表し、PDO::ERRMODE_SILENT はエラー コードの設定のみを表し、PDO::ERRMODE_WARNING は E_WARNING エラーの原因を表し、PDO::ERRMODE_EXCEPTION は例外のスローを表します。例外。

PDO::ATTR_ORACLE_NULLS は、Oracle に限定されないすべてのドライバーで利用可能であることを意味し、NULL と空の文字列を変換します。PDO::NULL_NATURAL は変換なしを意味し、PDO::NULL_EMPTY_STRING は、空の文字列を NULL に変換; PDO::NULL_TO_STRING は、NULL を空の文字列に変換することを意味します。

次に、setAttribute() メソッドを使用してデータベース ハンドルの属性を設定する例を見てみましょう。例は次のとおりです:

<?php
    header("Content-Type: text/html;charset=utf-8");
    $pdo = new PDO(&#39;mysql:dbname=test;host=127.0.0.1&#39;,&#39;root&#39;,&#39;root&#39;,$opt);
    $pdo->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER);
    echo &#39;PDO::ATTR_CASE属性的值为:&#39;.$pdo -> getAttribute(PDO::ATTR_CASE);
    $pdo->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);
    echo &#39;<br>PDO::ATTR_CASE属性的值为:&#39;.$pdo -> getAttribute(PDO::ATTR_CASE);
    $pdo->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL);
    echo &#39;<br>PDO::ATTR_CASE属性的值为:&#39;.$pdo -> getAttribute(PDO::ATTR_CASE);
?>
ログイン後にコピー

出力結果:


PHPデータベース学習でPDO属性を設定および取得するにはどうすればよいですか?

上記の例では、データベース ハンドルの属性は setAttribute() メソッドを使用して設定されます。次に、利用可能な共通属性名と使用できる値を整理します。
  • PDO::ATTR_STRINGIFY_FETCHES は、抽出時に値を文字列に変換することを意味します;

  • PDO::ATTR_STATEMENT_CLASS PDOStatement から派生したユーザー提供のステートメント クラスの設定を表します。永続的な PDO インスタンスでは使用できません。

  • PDO::ATTR_AUTOCOMMIT 個々のステートメントを自動的に送信するかどうかを示します。これは、OCI、Firebird、および MySQL で使用できます。

  • PDO::ATTR_DEFAULT_FETCH_MODE デフォルトの抽出モードの設定を示します。

  • PDO::MYSQL_ATTR_USE_BUFFERED_QUERY は、MySQL データベースで使用できるバッファされたクエリの使用を示します。

次の点にも注意する必要があります。 PDO::ATTR_TIMEOUT 指定されたタイムアウトの秒数を示します。異なるドライバー間には違いがある場合があります。たとえば、SQLite はこの値を待機した後、書き込み可能なロックの取得を放棄しますが、他のドライバーはこの値を接続または読み取りタイムアウト間隔として解釈する可能性があります。

PDO ::ATTR_EMULATE_PREPARES 準備されたステートメントのシミュレーションを有効または無効にすることを示します。ドライバーによっては、ローカル前処理のサポートがないか、サポートが制限されている場合があります。PDO が常にプリペアド ステートメントをエミュレートするように強制するか、ローカルのプリペアド ステートメントの使用を試みるには、この設定を使用します。ドライバーが現在のクエリを正常に準備できない場合、ドライバーは常に準備されたステートメントのシミュレーションに戻ります。

ご興味がございましたら、「PHP ビデオ チュートリアル 」をクリックして、PHP の知識をさらにご覧ください。

以上がPHPデータベース学習でPDO属性を設定および取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート