本記事では、EXTを使用してOceanBaseデータベースに接続し、テーブルの作成やデータの挿入などの基本操作を実現する方法を紹介します。 EXTとは、特定の目的(例: データベースアクセス)のために使用されるPHP拡張機能の総称です。
適用バージョン
OceanBaseデータベースのすべてのバージョン。
前提条件
- PHPとphp-mysqlがインストール済みであること。
- OceanBaseデータベースがインストール済みで、MySQLモードのテナントが作成されていること。
操作手順
- phpとphp-mysql環境を確認し、インストールします。
obtest.phpサンプルファイルを新規作成し、データベース接続情報を設定します。obtest.phpファイルを実行して検証します。
ステップ1:PHPとPHP-MYSQL環境を確認し、インストールする
以下のコマンドを実行してPHP環境をインストールします。
sudo yum install php
sudo yum install php-mysql
以下のコマンドを実行して、インストールに成功したかどうか確認します。
[root]# php -v
PHP 5.4.16 (cli) (built: Dec 13 2015 00:05:14)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
ステップ2:obtest.phpファイル内のデータベース接続情報を修正する
Linux環境を例にすると、vi obtest.php または vim obtest.php コマンドを使用して obtest.php ファイルを編集し、ファイル内のデータベース接続情報を修正することで、実際の状況と一致させます。
例:
[root]# vim obtest.php
<?php
$servername = "172.30.xxx.xxx";
$port = "2881";
$username = "root@mysql";
$password = "xxxx";
$dbname = "test";
// 接続の作成
$conn = mysqli_connect($servername, $username, $password, $dbname, $port);
// 接続に成功したかどうかを確認する
if (!$conn) {
die("接続失敗: " . mysqli_connect_error());
}
echo "接続成功";
?>
ここで、
$servernameはサーバーのアドレスを指します。$usernameはデータベースに接続するためのユーザー名を指します。$passwordはデータベースに接続するパスワードを指します。$dbnameは接続するデータベースの名前を指します。
ステップ3:obtest.phpファイルを実行して検証する
php obtest.php を実行すると、以下の例と失敗の原因が返されます。
[root]# php obtest.php
PHP Warning: mysqli_connect(): (42000/1045): Access denied for user 'root'@'xxx.xxx.xxx.xxx' (using password: YES) in /home/admin/obtest.php on line 9
接続失敗: Access denied for user 'root'@'xxx.xxx.xxx.xxx' (using password: YES)
正しいパスワードを入力すると、接続成功のメッセージが表示されます。返される例は以下に示します:
[root]# php obtest.php
接続成功
テーブルの作成、追加、削除、更新、クエリのテストの例:
[root]# vim obtest.php
<?php
$servername = "172.30.xxx.xxx"; // サーバーのアドレス
$port = "2881";
$username = "root@mysql001"; // ユーザー名
$password = "xxxxxxx"; // パスワード
$dbname = "test"; // 接続するデータベースの名前
// 接続の作成
$conn = mysqli_connect($servername, $username, $password, $dbname, $port);
// 接続に成功したかどうかを確認する
if (!$conn) {
die("接続失敗: " . mysqli_connect_error());
}
// テーブルの作成
$sql = "CREATE TABLE myguests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";
if (mysqli_query($conn, $sql)) {
echo "テーブルmyguestsの作成に成功しました";
} else {
echo "テーブルの作成に失敗しました: " . mysqli_error($conn);
}
// データの挿入
$sql = "INSERT INTO myguests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";
if (mysqli_query($conn, $sql)) {
echo "新規レコードの挿入に成功しました";
} else {
echo "データの挿入に失敗しました: " . mysqli_error($conn);
}
// 接続を閉じる
mysqli_close($conn);
?>
実行成功の実行結果は次のとおりです:
[root]# php obtest.php
テーブルmyguestsの作成と新しいレコードの挿入に成功しましたid: 1 - Name: John Doe<br>テーブルmyguestsの削除に成功しました