MySQL 関数を PDO で置き換える方法
MySQL 関数は現在非推奨となっており、将来の PHP バージョンでは削除される予定です。代わりに MySQLi または PDO_MySQL を使用する必要があります。
PDO の実装
PDO は、MySQL や PDO_MySQL などのさまざまなデータベースに接続するための一貫したインターフェイスを提供します。 MSSQL.
接続:
MySQL:
$dsn = 'mysql:dbname=databasename;host=127.0.0.1'; $dbh = new PDO($dsn, 'dbuser', 'dbpass');
MSSQL:
$dsn = 'sqlsrv:Server=127.0.0.1;Database=databasename'; $dbh = new PDO($dsn, 'dbuser', 'dbpass');
実行中クエリ:
PDO は準備されたステートメントを使用し、SQL インジェクションの脆弱性を防ぎます。
$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';
クエリの実行:
準備と実行を使用します。変数の場合クエリ。
$query = $dbh->prepare($SQL); $query->execute([':username' => 'someone']);
結果の取得:
結果を取得するには、fetch または fetchAll を使用します。
while ($row = $query->fetch()) { echo $row['ID'], $row['EMAIL']; }
例外処理:
PDO 例外を有効にする処理。
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
コンビニエンス クラス:
class PDOConnection { function __construct($dsn, $username, $password) { $this->connection = new PDO($dsn, $username, $password); $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $this->connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } function query($SQL) { return $this->connection->query($SQL); } function prepare($SQL, $params = []) { return $this->connection->prepare($SQL)->execute($params); } }
以上がMySQL 関数から PDO_MySQL に移行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。