本ドキュメントでは、EXTを使用してOceanBase Cloudに接続し、テーブルの作成やデータの挿入などの基本操作を実行する方法について説明します。 EXTは、データベースアクセスなどの機能を提供するPHP拡張モジュールです。
対象バージョン
OceanBase Cloudのすべてのバージョン。
前提条件
- phpおよびphp-mysqlがインストールされていること。
- OceanBase Cloudのアカウントを登録し、クラスタインスタンスと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 = "t********.********.oceanbase.cloud";
$port = "3306";
$username = "mysql001";
$password = "********";
$dbname = "test";
// 接続を作成
$conn = mysqli_connect($servername, $username, $password, $dbname, $port);
// 接続が成功したかを確認
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
echo "连接成功";
?>
各項目の説明は以下のとおりです:
$servername:OceanBase Cloudの接続アドレスです。$port:OceanBase Cloudの接続ポートです。デフォルトは3306です。$username:データベースにアクセスするアカウントです。$password:アカウントのパスワードです。$dbname:データベース名です。
操作手順3:obtest.phpファイルの実行と検証
php obtest.php を実行すると、以下のような例と失敗原因が返されます:
[root]# php obtest.php
PHP Warning: mysqli_connect(): (42000/1045): Access denied for user 'mysql001'@'t********.********.oceanbase.cloud' (using password: YES) in /home/admin/obtest.php on line 9
连接失败: Access denied for user 'mysql001'@'t********.********.oceanbase.cloud' (using password: YES)
正しいパスワードを入力すると接続成功のメッセージが表示されます。返される例は以下のとおりです:
[root]# php obtest.php
连接成功
テーブルの作成およびCRUD操作をテストします。テスト例は以下のとおりです:
[root]# vim obtest.php
<?php
$servername = "t********.********.oceanbase.cloud"; // サーバーアドレス
$port = "3306";
$username = "mysql001"; // ユーザー名
$password = "********"; // パスワード
$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 删除成功