PHP PDO操作のまとめ_JavaScriptスキル
0x01: PDO が正常にインストールされているかどうかをテストします
次のコードを実行します。パラメーター エラーが表示された場合は、PDO がインストールされています。オブジェクトが存在しない場合は、PHP 構成ファイル php.ini を変更し、php_pdo_yourssqlserverhere.extis の前のコメントをキャンセルします。
$test=新しい PDO();
0x02: データベース
に接続しますApache サーバーを実行し、サーバーが実行されていて PDO が正常にインストールされていることを確認してから、データベースに接続しましょう。
$dsn = 'mysql:dbname=demo;host=localhost;port=3306';
$username = 'root';
$password = 'password_here';
{
を試してください $db = 新しい PDO($dsn, $username, $password); } catch(PDOException $e) {
Die('データベースに接続できませんでした:
' . $e);
}
0x03: 基本クエリ
PDO で query メソッドと exec メソッドを使用すると、データベース クエリが非常に簡単になります。クエリ結果の行数を取得する場合、exec は非常に使いやすいため、SELECT クエリ ステートメントに非常に役立ちます。
`食べ物`から
WHERE `健康` = 0
SQL;
$foods = $db->query($statement);
0x04: 行数を取得
Mysql データベースを使用している場合、次のコードに示すように、PDO ステートメントには結果セット内の行数を取得する rowCount メソッドが含まれています。
0x05: 結果セットを走査します
PDO ステートメントは、次のコードに示すように、forech ステートメントを使用して走査できます。';
}
PDO は、入力文字列内の引用符のある場所で特殊文字をエスケープできる、quote と呼ばれるメソッドを提供します。
PDO は、exec() メソッドを使用して UPDATE、DELETE、INSERT 操作を実装できます。実行後、影響を受ける行の数が返されます。
WHERE `健康` = 1;
SQL;
echo $db->exec($statement);
0x08: 準備されたステートメント
実行メソッドとクエリは依然として PHP で広く使用されサポートされていますが、PHP 公式 Web サイトでは、代わりに準備されたステートメントを使用することが依然として求められています。なぜ?主な理由は、そのほうが安全だからです。準備されたステートメントは実際のクエリにパラメーターを直接挿入しないため、潜在的な SQL インジェクションの多くが回避されます。
ただし、何らかの理由で、PDO は実際には前処理を使用せず、SQL サーバーに渡す前に前処理をシミュレートしてステートメントにパラメータ データを挿入します。これにより、システムが SQL インジェクションに対して脆弱になります。
SQL サーバーが実際には前処理をサポートしていない場合は、次のように PDO の初期化中にパラメータを渡すことで、この問題を簡単に解決できます。
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
これが最初に準備されたステートメントです:
$statement = $db->prepare('SELECT * FROM food WHERE `name`=? AND `healthy`=?');
$statement2 = $db->prepare('SELECT * FROM food WHERE `name`=:name AND `healthy`=:healthy)';
上記のコードに示されているように、パラメーターを作成するには、名前付きと匿名の 2 つの方法があります (1 つのステートメントに同時に使用することはできません)。次に、bindValue を使用して入力を入力できます:
$statement->bindValue(1, 'Cake');
$statement->bindValue(2, true);
$statement2->bindValue(':name', 'Pie');
$statement2->bindValue(':healthy', false);
名前付きパラメータを使用する場合は、コロン (:) を含める必要があることに注意してください。 PDO には、参照によって値をバインドできる bindingParam メソッドもあります。これは、ステートメントの実行時に対応する値のみを検索することを意味します。
あとはステートメントを実行するだけです:
$statement->execute();
$statement2->execute();
// 結果を取得します:
$cake = $statement->Fetch();
$pie = $statement2->Fetch();
bindValue のみを使用することによって引き起こされるコードの断片化を避けるために、次のように配列を実行メソッドのパラメータとして使用できます。
$statement->execute(array(1 => 'Cake', 2 => true));
$statement2->execute(array(':name' => 'Pie', ':healthy' => false));
0x09: トランザクション
トランザクションは一連のクエリを実行しますが、その結果はデータベースに保存されません。この利点は、4 つの相互依存する挿入ステートメントを実行する場合、1 つが失敗したときにロールバックして、他のデータをデータベースに挿入できないようにして、相互依存するフィールドを正しく挿入できることです。使用するデータベース エンジンがトランザクションをサポートしていることを確認する必要があります。
0x10: トランザクションの開始
beginTransaction() メソッドを使用するだけでトランザクションを開始できます。
$db->beginTransaction();
$db->inTransaction() // true!
その後、データベース操作ステートメントの実行を続行し、最後にトランザクションをコミットできます。
$db->commit();
MySQLi にも rollBack() に似たメソッドがありますが、すべてのタイプをロールバックするわけではありません (MySQL での DROP TABLE の使用など)。このメソッドはあまり信頼できません。方法。
0x11: その他の便利なオプション
検討できるオプションはいくつかあります。これらは、オブジェクトを初期化するときに 4 番目のパラメーターとして入力できます。
$options = array($option1 => $value1, $option[..]);
$db = 新しい PDO($dsn, $username, $password, $options);
PDO::ATTR_DEFAULT_FETCH_MODE
$result['column_name'] を使用できる PDO::FETCH_ASSOC や、匿名オブジェクトを返す PDO::FETCH_OBJ など、PDO が返す結果セットのタイプを選択できます。 $result->column_name
を使用するには次のように、個々のクエリごとに読み取りモードを設定することで、結果を特定のクラス (モデル) に入れることもできます。
$query = $db->query('SELECT * FROM `foods`');
$foods = $query->fetchAll(PDO::FETCH_CLASS, 'Food');
PDO::ATTR_ERRMODE
これについては上ですでに説明しましたが、TryCatch が好きな人は PDO::ERRMODE_EXCEPTION を使用する必要があります。何らかの理由で PHP 警告をスローしたい場合は、PDO::ERRMODE_WARNING を使用します。
PDO::ATTR_TIMEOUT
読み込み時間が心配な場合は、この属性を使用してクエリのタイムアウトを秒単位で指定できます。設定した時間を超えると、PDO:: を除き、デフォルトで E_WARNING 例外がスローされることに注意してください。 ATTR_ERRMODE が変更されました。

ホット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 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。
