ホームページ  >  記事  >  バックエンド開発  >  PHP が PDO 抽象化レイヤーを使用してクエリ結果を取得する方法

PHP が PDO 抽象化レイヤーを使用してクエリ結果を取得する方法

不言
不言オリジナル
2018-06-01 13:48:031564ブラウズ

この記事では、PDO 抽象化層を使用してクエリ結果を取得する 3 つの一般的な方法と、関連する関数の使用スキルを例の形式で分析します。

この記事の例では、PHP が PDO 抽象化レイヤーを使用してクエリ結果を取得する方法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

PHP は PDO 抽象化レイヤーを使用してクエリ結果を取得します。主に 3 つの方法があります:

(1) PDO::query() クエリ。

次の PHP コードを見てください:

<?php
//PDO::query()查询
$psql="SELECT * FROM user";
$res = $db->query($psql);
$res->setFetchMode(PDO::FETCH_NUM); //数字索引方式
while ($row = $res->fetch()){
print_r($row);
}
?>

(2) PDO->exec() 処理 sql

<?php
//PDO->exec()处理sql
$psql="INSERT INTO user(id , username) values(&#39;&#39; , &#39;张三&#39;)";
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$res = $db->exec($psql);
echo $res;
?>

(3) PDO::prepare() 前処理 Exエキュートquery

<?php
//PDO::prepare()预处理执行查询
$psql="SELECT * FROM user";
$res = $db->prepare($psql);
$res->execute();
while ($row = $res->fetchAll()) {
print_r($row);
}
?>

setAttribute() メソッドは属性を設定します。 共通パラメータは次のとおりです: setAttribute() 方法是设置属性,常用参数如下:

PDO::CASE_LOWER -- 强制列名是小写
PDO::CASE_NATURAL -- 列名按照原始的方式
PDO::CASE_UPPER -- 强制列名为大写

setFetchMode方法来设置获取结果集的返回值的类型,常用参数如下:

PDO::FETCH_ASSOC -- 关联数组形式
PDO::FETCH_NUM -- 数字索引数组形式
PDO::FETCH_BOTH -- 两者数组形式都有,这是默认的
PDO::FETCH_OBJ -- 按照对象的形式,类似于以前的 mysql_fetch_object()

对上面总结如下:

查询操作主要是PDO::query()PDO::exec()PDO::prepare()

PDO->query() — 处理一条SQL语句,并返回一个“PDOStatement”
PDO->exec() — 处理一条SQL语句,并返回所影响的条目数

PDO::prepare()主要是预处理操作,需要通过$rs->execute()来执行预处理里面的SQL语句

最后介绍两个常用的函数:

(1)fetchColumn()获取指定记录里一个字段结果,默认是第一个字段!

<?php
$psql="SELECT * FROM user";
$res = $db->query($psql);
//获取指定记录里第二个字段结果
$col = $res->fetchColumn(1);
echo $col;
?>

(2)fetchAll()

PDO::CASE_LOWER

-- 列名を強制的に小文字にする

PDO::CASE_NATURAL

-- 列名は元の形式です

PDO:: CASE_UPPER

-- 必須 列名は大文字です。

setFetchMode メソッドで、結果セットを取得するための戻り値のタイプを設定します。 共通パラメータは次のとおりです。
PDO::FETCH_ASSOC

-- 連想配列形式

PDO::FETCH_NUM

-- 数値インデックス配列形式

PDO::FETCH_BOTH -- 両方の配列 すべての形式があります。これがデフォルトです PDO::FETCH_OBJ

-- オブジェクトの形式によれば、次のようになります前回の mysql_fetch_object() 🎜🎜🎜 上記の要約は次のとおりです: 🎜🎜🎜 クエリ操作は主に PDO::query()PDO::exec()PDO::prepare()。 🎜🎜PDO->query() — SQL ステートメントを処理し、「PDOStatement」を返します。 🎜PDO->exec() — SQL ステートメントを処理し、戻り値を返します。影響を受けるエントリの数🎜🎜🎜PDO::prepare() これは主に前処理操作です。前処理で SQL ステートメントを実行するには $rs->execute() を使用する必要があります🎜🎜。 🎜最後に、よく使用される 2 つの関数を紹介します: 🎜🎜🎜 (1) fetchColumn() 指定されたレコードのフィールドの結果を取得します。デフォルトは最初のフィールドです。 🎜🎜🎜
<?php
$psql="SELECT * FROM user";
$res = $db->query($psql);
$res_arr =$res->fetchAll();
print_r($res_arr);
?>
🎜🎜🎜 (2) fetchAll() 結果セットからデータを取得し、連想配列に格納します 🎜🎜🎜rrreee🎜🎜🎜🎜🎜 関連推奨事項: 🎜🎜🎜PHP ベースPDO のデータベース操作クラス [mysql、sqlserver、oracle をサポート可能]🎜🎜🎜🎜🎜🎜🎜🎜🎜

以上がPHP が PDO 抽象化レイヤーを使用してクエリ結果を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。