MySQLへの接続

広告

ではまずMySQLへ接続してみます。

事前にMySQLへ"uriage"と言う名前のデータベースを作成してあります。また"uriage"データベース内に"shouhin"テーブルを作成し、初期データを入れてあります。

PEAR::DBでMySQLへ接続

またこのデータベースへ接続してSQL文を発行するためのユーザーとして「testuser@localhost」というユーザーを作成しました(パスワードは「testuser」)。このユーザーに対する権限は下記のようにグローバル権限は無しで、「uriage」データベースに対する全ての権限を与えています。

PEAR::DBでMySQLへ接続

この場合のDSNは「mysqli://testuser:testuser@localhost/uriage」となります。(mysqlではなくmysqliの方を使っています)。

サンプルプログラム

では実際に試してみます。

sample4-1.php

<html>
<head><title>PHP TEST</title></head>
<body>

<?php

require_once 'DB.php';

$dsn = 'mysqli://testuser:testuser@localhost/uriage';

$db = DB::connect($dsn);
if (PEAR::isError($db)) {
    die($db->getMessage());
}

print('接続に成功しました');

$db->disconnect();

?>

</body>
</html>

上記をWWWサーバに設置しブラウザで見てみると下記のようにエラーとなりました。

PEAR::DBでMySQLへ接続

「extension not found」と言うエラーです。これはphp.iniのextensionの箇所に「extension=php_mysqli.dll」が無いためでした。「mysql」ではなく「mysqli」を使うには記述が必要なようです。

PEAR::DBでMySQLへ接続

上記のようにphp.iniに記述を追加しました。

設定変更後、WWWサーバを再起動して改めて見てみると今度は成功しました。

PEAR::DBでMySQLへ接続

( Written by Tatsuo Ikura )