MySQL 関数を PDO に置き換える方法: PHP での最新のデータベース接続に関するガイド?

Barbara Streisand
リリース: 2024-11-16 04:07:50
オリジナル
928 人が閲覧しました

How to Replace MySQL Functions with PDO: A Guide to Modern Database Connectivity in PHP?

MySQL 関数を PDO で置き換える方法

概要:

MySQL 拡張機能は非推奨になりましたPHP では、データベース接続のために MySQLi または PDO_MySQL に置き換える必要があります。 PDO (PHP Data Objects) は、複数のデータベースにアクセスするための最新のオブジェクト指向インターフェイスを提供します。

MySQL および MSSQL への接続データベース:

MySQL:

$dsn = 'mysql:dbname=database_name;host=localhost';
$user = 'username';
$password = 'password';

$dbh = new PDO($dsn, $user, $password);
ログイン後にコピー

MSSQL:

$dsn = 'sqlsrv:Server=localhost;Database=database_name';
$user = 'username';
$password = 'password';

$dbh = new PDO($dsn, $user, $password);
ログイン後にコピー

実行中クエリ:

PDO はクエリの実行にプリペアド ステートメントを使用し、SQL インジェクションから保護します。

SQL の例:

$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';
ログイン後にコピー

実行中クエリ:

// Prepare statement with array of named variables
$result = $dbh->prepare($SQL);
$result->execute([':username' => $username]);

// OR

// Prepare statement with named placeholder indicator
$result = $dbh->prepare($SQL);
$result->bindValue(':username', $username);
$result->execute();
ログイン後にコピー

結果の取得:

// Fetch a single row as an array
$row = $result->fetch();

// Fetch all rows as an array
$rows = $result->fetchAll();
ログイン後にコピー

ヘルパー クラスの使用:

データベースのやり取りを簡素化するには、次のようなクラスの使用を検討してください。以下:

class PDOConnection {
    public $connection;

    public function __construct($dsn, $username, $password) {
        $this->connection = new PDO($dsn, $username, $password);
        $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }

    public function query($SQL) {
        return $this->connection->query($SQL);
    }

    public function prepare($SQL, $params = []) {
        $result = $this->connection->prepare($SQL);
        $result->execute($params);
        return $result;
    }
}
ログイン後にコピー

使用例:

$db = new PDOConnection($dsn, $user, $password);

$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';
$result = $db->prepare($SQL, ['username' => $username]);

while ($row = $result->fetch()) {
    echo $row['ID'] . ' ' . $row['EMAIL'];
}
ログイン後にコピー

以上がMySQL 関数を PDO に置き換える方法: PHP での最新のデータベース接続に関するガイド?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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