無料のオープンソースMySQLは、最も人気のあるリレーショナルデータベース管理システムの1つです。 WebサイトおよびWebアプリケーションのコンテンツを保存するために使用されます。 PHPベースのWebアプリケーションをMySQLと統合する場合は、PHPがMySQLに接続してデータベースクエリを実行できるかどうかをテストする必要があります。 MySQLからデータを取得するには、データベースとPHPスクリプト間の接続を確立する必要があります。データベースとPHPスクリプト間の接続を確立する方法は2つあります。
この投稿では、次のことを説明します:
- PHPMySQLi拡張機能を使用してMySQLに接続する方法
- PHPデータオブジェクト(PDO)を使用してMySQLに接続する方法
前提条件
- Atlantic.NetクラウドプラットフォームでLinuxを実行しているサーバー
- サーバーで構成されているrootパスワード
Atlantic.Netクラウドサーバーを作成する
まず、Atlantic.Netクラウドサーバーにログインします。少なくとも1GBのRAMを搭載したUbuntuまたはDebianベースのLinuxオペレーティングシステムを選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。
LAMPスタックのインストール
開始する前に、LAMPスタックをサーバーにインストールする必要があります。インストールされていない場合は、次のコマンドでインストールできます。
apt-get install apache2 mysql-server php libapache2-mod-php php-mysqli php-pdo -y
LAMPスタックがインストールされたら、ApacheおよびMySQLサービスを開始して有効にします。
systemctl start apache2 mysql systemctl enable apache2 mysql
MySQLデータベースの構成
次に、テストデータベースを作成する必要があります。これは、PHPスクリプトを使用してコンテンツをクエリするためのデータを含むテーブルです。
まず、次のコマンドを使用してMySQLシェルに接続します。
mysql
接続したら、次のコマンドを使用してデータベースとユーザーを作成します。
CREATE DATABASE testdb; CREATE USER 'testuser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
次に、次のコマンドを使用して、データベースにすべての権限を付与します。
GRANT ALL ON testdb.* TO 'testuser'@'%';
次に、データベースをtestdbに切り替えて、peopleという名前のテーブルを作成します。
USE testdb; CREATE TABLE people ( item_id INT AUTO_INCREMENT, content VARCHAR(255), PRIMARY KEY(item_id) );
次に、いくつかのデータをテーブルに挿入します:
INSERT INTO people (content) VALUES ("Hitesh Jethva"); INSERT INTO people (content) VALUES ("Jayesh Jethva"); INSERT INTO people (content) VALUES ("Vyom Jethva"); INSERT INTO people (content) VALUES ("Ninav Jethva");
次に、次のコマンドを使用して、挿入されたすべてのデータを確認します。
SELECT * FROM people;
次の出力が得られます:
+---------+---------------+ | item_id | content | +---------+---------------+ | 1 | Hitesh Jethva | | 2 | Jayesh Jethva | | 3 | Vyom Jethva | | 4 | Ninav Jethva | +---------+---------------+
次に、特権をフラッシュし、次のコマンドを使用してMySQLを終了します。
FLUSH PRIVILEGES; EXIT;
PHPMySQLiを使用してMySQLに接続する
MySQLiは、MySQLデータベースをサポートし、ユーザーがMySQLに接続してそのコンテンツにアクセスできるようにするMySQL拡張機能です。
まず、MySQLiを使用してMySQLデータベースに接続するためのPHPスクリプトをApacheWebルートディレクトリ内に作成します。
nano /var/www/html/php-mysqli-connection.php
次のコードを追加します:
<?php $servername = "localhost"; $database = "testdb"; $username = "testuser"; $password = "password"; $table = "people"; $conn = mysqli_connect($servername, $username, $password, $database); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected to MySQL Using Mysqli Successfully"; echo "<h2>List Table Content</h2><ol>"; foreach($conn->query("SELECT content FROM $table") as $row) { echo "<li>" . $row['content'] . "</li>"; } echo "</ol>"; mysqli_close($conn); ?>
完了したら、ファイルを保存して閉じます。
次に、Webブラウザーを開き、URL http://your-server-ip/php-mysqli-connection.phpを使用してPHPスクリプトにアクセスします。 。 PHPがMySQLサーバーに接続されている場合、次の画面にテーブルの内容が表示されます。
PHPPDOを使用してMySQLに接続する
「PHPデータオブジェクト」とも呼ばれるPDOは、MySQLデータベースへの接続に使用されるPHP拡張機能です。
まず、PDOを使用してMySQLデータベースに接続するためのPHPスクリプトをApacheWebルートディレクトリ内に作成します。
nano /var/www/html/php-pdo-connection.php
次のコードを追加します:
<?php $servername = "localhost"; $database = "testdb"; $username = "testuser"; $password = "password"; $table = "people"; $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 "Connected to MySQL Using PDO Successfully"; echo "<h2>List Table Content</h2><ol>"; foreach($pdo->query("SELECT content FROM $table") as $row) { echo "<li>" . $row['content'] . "</li>"; } echo "</ol>"; } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); } ?>
完了したら、ファイルを保存して閉じます。
次に、Webブラウザーを開き、URL http://your-server-ip/php-pdo-connection.phpを使用してPHPスクリプトにアクセスします。 。 PHPがMySQLサーバーに接続されている場合、次の画面にテーブルの内容が表示されます。
結論
この投稿では、PHPを使用してMySQLデータベースに接続する2つの方法について説明しました。 PDOとMySQLiはどちらも非常に便利なPHP拡張機能です。ただし、MySQLi拡張機能はMySQLデータベースにのみ使用され、PDO拡張機能は12の異なるデータベースで機能します。 Atlantic.NetのVPSホスティングでお試しください!