GNU/Linux >> Linux の 問題 >  >> Cent OS

PHPを使用してMySQLに接続する方法

はじめに

MySQLにアクセスしてコンテンツを追加するには データベースの場合、最初にデータベースと PHPの間の接続を確立する必要があります スクリプト。

このチュートリアルでは、MySQLi拡張機能とPHPデータオブジェクトを使用してMySQLに接続する方法を学びます 。従来のレガシーmysql_関数は非推奨であり、このガイドでは取り上げません。

前提条件

  • 特別なCREATE特権
  • MySQLデータベース
  • MySQLiまたはPDO拡張機能

PHPを使用してMySQLデータベースに接続する2つの方法

PHPを使用してMySQLデータベースに接続する一般的な方法は2つあります。

  1. PHPのMySQLi拡張機能を使用
  2. PHPデータオブジェクト(PDO)を使用

このガイドには、PHPスクリプトで使用されるクレデンシャルの説明と、MySQLiおよびPDOを使用して発生する可能性のある潜在的なエラーも含まれています。

オプション1:MySQLの改良された拡張機能を使用してMySQLに接続する

MySQLi MySQLデータベースのみをサポートする拡張機能です。 MySQLシステム(バージョン4.1以降)にある新しい機能へのアクセスを可能にし、オブジェクト指向と手続き型の両方のインターフェースを提供します。サーバー側のプリペアドステートメントはサポートされますが、クライアント側のプリペアドステートメントはサポートされません。

MySQLi拡張機能はPHPバージョン5以降に含まれています。

MySQLi手続き型アプローチを使用してMySQLデータベースに接続するためのPHPスクリプトは次のとおりです。

<?php
$servername = "localhost";
$database = "database";
$username = "username";
$password = "password";

// Create connection

$conn = mysqli_connect($servername, $username, $password, $database);

// Check connection

if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

echo “Connected successfully”;

mysqli_close($conn);

?>

クレデンシャルの説明

スクリプトの最初の部分は、4つの変数(サーバー名、データベース、ユーザー名、およびパスワード)とそれぞれの値です。これらの値は、接続の詳細に対応している必要があります。

次は、メインのPHP関数 mysqli_connect()です。 。指定されたデータベースとの接続を確立します。

以下は「ifステートメント」です。 。」これは、接続が確立されたかどうかを示すコードの一部です。接続に失敗すると、接続に失敗しましたというメッセージが表示されます。 ダイ 関数はメッセージを出力してから終了します スクリプトから。

接続が成功すると、「正常に接続されました」と表示されます。 。」

スクリプトが終了すると、データベースとの接続も閉じます。コードを手動で終了する場合は、 mysqli_closeを使用します 機能。

オプション2:PDOを使用してMySQLに接続する

PHPデータオブジェクト(PDO) データベースに接続するためのインターフェースとして機能する拡張機能です。 MySQLiとは異なり、任意のデータベース機能を実行でき、MySQLに限定されません。これにより、データベース間の柔軟性が可能になり、MySQLよりも一般的です。 PDOは、サーバー側とクライアント側の両方のプリペアドステートメントをサポートします。

PDO拡張機能を介してMySQLデータベースに接続するためのPHPコードは次のとおりです。

<?php

$servername = "localhost";
$database = "database";
$username = "username";
$password = "password";
$charset = "utf8mb4";

try {

$dsn = "mysql:host=$servername;dbname=$database;charset=$charset";
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

echo “Connection Okay”;

return $pdo

}

catch (PDOException $e)

{
echo “Connection failed: ”. $e->getMessage();
}

?>

クレデンシャル構文

まず、5つの変数(サーバー名、データベース、ユーザー名、パスワード、および文字セット)とそれらの値があります。これらの値は、接続の詳細に対応している必要があります。

サーバー名 localhostになります 。オンラインサーバーに接続している場合は、そのサーバーのサーバー名を入力します。

変数文字セット データを送受信するエンコーディングをデータベースに通知します。推奨される標準はutf8mb4です 。

ブロックを試してキャッチする

PDOの大きな利点は、例外があることです。 データベースクエリの潜在的な問題を処理するクラス。 try and catch を組み込むことで、これらの問題を解決します。 ブロック。

接続中に問題が発生した場合、実行を停止し、キャッチを試みます。 問題を解決します。 キャッチ ブロックは、エラーメッセージを表示するように設定できます または代替コードを実行します 。

try and catchの最初のパラメータ ブロックはDSN、 これはデータベース(ベース)ソース名の略です 。データベースのタイプと名前、およびその他の追加情報を定義するため、これは非常に重要です。

この例では、MySQLデータベースを使用しています。ただし、PDOはさまざまなタイプのデータベースをサポートしています。別のデータベースがある場合は、構文のその部分を置き換えます( mysql )使用しているデータベースを使用します。

次はPDOです 変数。この変数は、データベースへの接続を確立します。 3つのパラメータがあります:

  1. データソース名(dsn)
  2. データベースのユーザー名
  3. データベースのパスワード

以下はsetAttributeメソッドです PDOに2つのパラメータを追加します:

  1. PDO ::ATTR_ERRMODE
  2. PDO ::ERRMODE_EXCEPTION

このメソッドは、PDOに例外を実行するように指示します クエリが失敗した場合。

エコー「接続は大丈夫」を追加します 。」接続が確立されたことを確認します。

戻る データベースに接続するためのPDO変数。

PDO変数を返した後、 PDOExceptionを定義します キャッチで 接続に失敗したときにメッセージを表示するように指示してブロックします。

MySQLiとPDOの潜在的なエラー

不正なパスワード

PHPコードのパスワードは、データベースのパスワードと一致している必要があります。 2つが一致しない場合、データベースとの接続を確立できません。 接続に失敗しましたというエラーメッセージが表示されます 。

考えられる解決策

  1. データベースの詳細をチェックして、パスワードが正しいことを確認してください。
  2. データベースに割り当てられているユーザーがいることを確認してください。

MySQLサーバーに接続できません

サーバー名が認識されない場合、PHPはMySQLサーバーに接続できない場合があります。 サーバー名を確認してください localhostに設定されています 。

その他のエラーが発生した場合は、必ず error_logを参照してください。 問題を解決しようとするときに役立つファイル。このファイルは、スクリプトが実行されているのと同じフォルダーにあります。


Cent OS
  1. コマンドラインを使用してMySQLでデータベースを作成する方法

  2. SSHのコマンドを使用してMySQLデータベースを復元するにはどうすればよいですか?

  3. CentOS で Yum groupinstall を使用して MySQL データベースをインストールする方法

  1. CentOS8にMySQL8データベースサーバーをインストールする方法

  2. CentOS /RHEL8にMySQL8.0をインストールする方法

  3. cPanel API を使用して MySQL データベースを作成する方法

  1. コマンドラインを使用してMySQLデータベースをバックアップおよび復元する方法

  2. CentOSにMySQLデータベースサーバーをインストールする方法

  3. コンピュータからリモートでMySQLデータベースに接続する方法