PHP 入門: データベース接続

WBOY
WBOYオリジナル
2023-05-20 11:10:351700ブラウズ

PHP は、Web 開発の分野で広く使用されているサーバー側スクリプト言語です。その中でも、データベースとの対話は PHP の重要なアプリケーション シナリオであり、この記事では PHP でデータベースに接続する方法を紹介します。

1. データベース接続の基本概念

Web アプリケーションでは、さまざまなデータを保存および管理するために、一般にリレーショナル データベースが使用されます。 PHP アプリケーションでは、データベース接続とは、コードを通じて PHP アプリケーションとデータベース間の接続を確立し、データの追加、削除、変更、確認などの操作を実行することを指します。このプロセスには通常、次の手順が含まれます:

  1. 自分に合ったデータベースを選択します: 現在、より一般的なデータベースには、MySQL、Oracle、PostgreSQL などが含まれます。実際のニーズに基づいたデータベース。
  2. 接続方法を決定する: PHP はさまざまな方法でデータベースに接続できます。この記事では主に、よく使用される 2 つのデータベース接続方法、MySQLi と PDO を紹介します。
  3. 接続パラメータの決定: 各接続方法では、ホスト アドレス、ユーザー名、パスワード、データベース名など、接続に必要なパラメータを指定する必要があります。

2. MySQLi 接続

MySQLi は、MySQL データベースと対話するために PHP によって公式に推奨されている拡張機能です。 PHP の新しいバージョンには、デフォルトで MySQLi 拡張機能がインストールされています。

  1. 接続の確立

MySQLi には、MySQL データベースを操作するための mysqli クラスが用意されています。まず、mysqli クラスのコンストラクターを通じてデータベースとの接続を確立する必要があります。 。一般的に使用されるコンストラクター パラメーターは次のとおりです。

  • host: サーバー アドレス。デフォルトは localhost です。
  • ユーザー名: ユーザー名。
  • パスワード: パスワード。
  • dbname: デフォルトで接続されるデータベースの名前。

サンプル コードは次のとおりです。

//连接数据库
$mysqli = new mysqli('localhost', 'username', 'password', 'dbname');
//错误检查
if(mysqli_connect_errno()) {
    printf("Connect failed: %s
", mysqli_connect_error());
    exit();
}
  1. SQL ステートメントの実行

接続が成功すると、さまざまな SQL ステートメントを実行できます。 。 MySQLi は、Query、Prepare、bind_param、execute、fetch など、SQL ステートメントを実行するための複数のメソッドを提供します。このうちクエリメソッドは簡単なSQL文を実行してクエリ結果を返すためのメソッドで、サンプルコードは以下の通りです。操作が完了した場合は、データベース接続を閉じる必要があります。

//查询语句
$query = "SELECT * FROM users";
//执行查询
$result = $mysqli->query($query);
//遍历结果
while ($row = $result->fetch_assoc()) {
    echo $row['username'] . '<br />';
}
    2. PDO 接続
  1. PDO (PHP Data Objects) は、PHP が提供する一般的なオブジェクトベースのデータベース操作メソッドであり、MySQL などのリレーショナル データベースと対話できるだけでなく、非リレーショナル データベースをサポートします。

接続の確立

PDO は、PDO オブジェクトを通じてデータベースとの接続を確立します。一般的に使用されるコンストラクター パラメーターは次のとおりです。

  1. dsn: データ ソース名、データベース タイプの識別、ホスト アドレス、データベース名、文字セット、その他の情報。
ユーザー名: ユーザー名。

パスワード: パスワード。
    サンプル コードは次のとおりです。
  • //关闭连接
    $mysqli->close();
  • SQL ステートメントの実行

  • PDO は、SQL インジェクション攻撃を回避し、実行効率を向上させるために SQL ステートメントを前処理できます。準備済みステートメントには通常、次の 3 つの手順が含まれます。
  1. 準備済みステートメントを準備します。
バインドパラメータ。

準備されたステートメントを実行します。
  1. サンプル コードは次のとおりです。
  2. //数据源名称
    $dsn = 'mysql:host=localhost;port=3306;dbname=test;charset=utf8';
    //连接数据库
    try {
        $pdo = new PDO($dsn, 'username', 'password');
        //设置错误模式
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     } catch (PDOException $e) {
        echo 'Connection failed: ' . $e->getMessage();
    }
  3. 接続を閉じる

すべてのデータベース操作が完了したら、データベース接続を確立する必要があります。閉鎖される。

//预处理语句
$stmt = $pdo->prepare("SELECT * FROM users WHERE id=:id");
//绑定参数
$id = 1;
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
//执行预处理语句
$stmt->execute();
//遍历结果
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo $row['username'] . '<br />';
}
    3. 提案と注意事項
PDO は複数の種類のデータベースをサポートし、コードの可読性とセキュリティが向上するため、データベースへの接続には PDO を使用することをお勧めします。

SQL インジェクション攻撃を回避し、実行効率を向上させるために、前処理された SQL ステートメントを使用することをお勧めします。

データベース接続のセキュリティに注意し、ユーザー名やパスワードなどの重要な情報をコード内にプレーン テキストで保存しないようにしてください。
  1. リソースの無駄やセキュリティのリスクを避けるために、データベース接続を時間内に閉じるように注意してください。
  2. 概要: この記事では、PHP で MySQL データベースを操作する 2 つの一般的な方法、つまり MySQLi と PDO を紹介します。この記事の導入部を通じて、読者は MySQL データベースとの接続を確立し、さまざまな SQL ステートメントを実行する方法を学ぶことができます。実際の開発では、アプリケーションのセキュリティ、保守性、拡張性を確保するために、PDO を使用して MySQL データベースに接続し、準備されたステートメントを使用して SQL ステートメントを実行することを推奨します。

以上がPHP 入門: データベース接続の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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