「php07」の編集履歴(バックアップ)一覧はこちら

php07」(2012/01/18 (水) 12:35:57) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

[[前のページ>php06]] < | > [[次のページ>php08]] *(9) PEAR MDB2を使ってみる ・こちらが分かり良いです。 ・・参考ページ:ttp://codezine.jp/article/detail/2480?p=2 ・ここでは、簡易的な操作手順のみ記述しています。 ・&bold(){PEAR MDB2を使った接続} ・・次のようにMySQLに接続します。MDB2::connectの引数は、「'mysqli://ユーザ名:パスワード@ホスト/データベース名?charset=文字コード'」です(接続に失敗するとエラーが表示されます)。 > require_once 'MDB2.php';#ライブラリのロード > $db=MDB2::connect('mysqli://test:pass@localhost/mydb?charset=utf8'); > if(PEAR::isError($db)) die("<p>{$db->getMessage()}</p>");#エラー処理 ・&bold(){準備} ・・InnoDBを有効にする。my.cnfの「skip-innodb」をコメントアウトし、その下のInnoDBの設定を有効にしておく。私の環境ではすでにこの状態でした。 > #skip-innodb #InnoDBの設定をスキップしない > # Uncomment the following if you are using InnoDB tables > #InnoDBのためのファイルの格納場所 > innodb_data_home_dir = C:/xampp/mysql/data/ > #InnoDBのためのファイルの初期サイズと拡張方法(ここでは自動) > innodb_data_file_path = ibdata1:10M:autoextend > innodb_log_group_home_dir = C:/xampp/mysql/data/ > innodb_log_arch_dir = C:/xampp/mysql/data/ ・&bold(){接続しよう。} ・・下記のスクリプトを実行しよう。(ユーザ名、パスワード他は自分で入れなおしてください。phpMyadminにログインする際と同じです。) #region(close, ←クリックで開く) # データベースを作成 CREATE DATABASE mydb DEFAULT CHARACTER SET utf8; # アクセス権限の設定(ユーザ名はtest、パスワードはpass) GRANT ALL ON mydb.* to test@localhost IDENTIFIED BY 'pass'; # テーブルを作成(トランザクションを使うため、エンジンはInnoDBにする) USE mydb; CREATE TABLE books( id INT AUTO_INCREMENT PRIMARY KEY, title TEXT NOT NULL, publisher VARCHAR(50) DEFAULT '' NOT NULL, year INT DEFAULT 0 NOT NULL, price INT DEFAULT 0 NOT NULL ) ENGINE=InnoDB; #endregion #co(){{ ・・また、Macを使用している方は、 > $pear_path = 'c:/xampp/php/PEAR'; を、 > $pear_path = '/Applications/xampp/xamppfiles/lib/php/pear'; に変更してください。 //#region(close,←クリックで開く) # MDB2クラスの組み込み $pear_path = 'c:/xampp/php/PEAR'; set_include_path(get_include_path() . PATH_SEPARATOR . $pear_path); require_once('MDB2.php'); # DSNの設定 $dsn = array( 'phptype' => 'mysql', 'username' => 'root', #ユーザ名 'password' => 'pass', #パスワード 'database' => 'testdb', #データベース名 'hostspec' => 'localhost', #ホスト名 ); # オプションの設定 $options = array( 'portability' => MDB2_PORTABILITY_ALL, ); # 接続 $mdb2 =& MDB2::connect($dsn, $options); if (PEAR::isError($mdb2)) { exit('データベースへの接続に失敗しました');} # 初期化 $sql = 'set names utf8'; $res =& $mdb2->query($sql); $mdb2->setFetchMode(MDB2_FETCHMODE_ASSOC); # 接続を切る $mdb2->disconnect(); //#endregion }}これで完了です。 ・&bold(){レコードの変更(insert/update/delete):execメソッド} > 変数=& $mdb2->exec (SQL文) ・例)テーブルにレコードを挿入 ・・「insert into sometable values (1, 'a')」というSQLを実行してテーブルにレコードを挿入する。失敗したときはメッセージを表示して終了する。 > $result =& $mdb2->exec("insert into sometable values (1, 'a')"); > if (PEAR::isError($result)) { > exic('SQLに失敗しました'); > } ・&bold(){レコードの読み込み(select):queryメソッド} > 変数 =& $mdb2->query(SQL文) ・&bold(){レコードを1件ずつ読み込み(select):fetchRowメソッド} > $data =& $res->fetchRow(); > ※$data, $res :変数 ・while文と一緒に用いて1件ずつレコードを処理する > while ($data = $res->fetchRow()){ > 個々のレコードに対する処理 > } ※ XAMPP 1.7.7 [PHP: 5.3.8] での設定項目です。 ※ 参考サイト:ttp://codezine.jp/article/detail/2480 ---- #center(){[[前のページ>php06]] < | > [[次のページ>php08]]} #center(){◆ ◆ ◆} ----
[[前のページ>php06]] < | > [[次のページ>php08]] *(9) PEAR MDB2を使ってみる ・こちらが分かり良いです。 ・・参考ページ:ttp://codezine.jp/article/detail/2480?p=2 ・ここでは、簡易的な操作手順のみ記述しています。 ・&bold(){PEAR MDB2を使った接続} ・・次のようにMySQLに接続します。MDB2::connectの引数は、「'mysqli://ユーザ名:パスワード@ホスト/データベース名?charset=文字コード'」です(接続に失敗するとエラーが表示される)。 > require_once 'MDB2.php';#ライブラリのロード > $db=MDB2::connect('mysqli://test:pass@localhost/mydb?charset=utf8'); > if(PEAR::isError($db)) die("<p>{$db->getMessage()}</p>");#エラー処理 ・&bold(){エラー用スクリプト} ・・いちいちエラーをチェックするのは面倒なので、エラーハンドラ(エラーが発生したときに実行される関数)を用意しておく。 ・・mdb2init.php > #エラーが発生したときに実行される関数 > function errorHandler($error){ > echo "<p>エラー発生 {$error->getMessage()}</p>"; > } > #errorHandlerを使うように設定 > PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'errorHandler'); ・&bold(){レコードの変更(insert/update/delete):execメソッド} ・・結果の返らないクエリはexecメソッドを使います。 > 変数=& $mdb2->exec (SQL文) ・例)テーブルにレコードを挿入 ・・「insert into sometable values (1, 'a')」というSQLを実行してテーブルにレコードを挿入する。失敗したときはメッセージを表示して終了する。 > $result =& $mdb2->exec("insert into sometable values (1, 'a')"); > if (PEAR::isError($result)) { > exic('SQLに失敗しました'); > } ・・mdb2-1.php > $db->exec('TRUNCATE TABLE books'); > $db->exec("INSERT INTO books VALUES (1,'The Art of Computer Programming 1', > 'アスキー',2004,10290)"); > $db->exec("INSERT INTO books VALUES (2,'フリーソフトウェアと自由な社会', > 'アスキー',2003,3360)"); > $db->exec("INSERT INTO books VALUES (3,'計算機プログラムの構造と解釈', > 'ピアソンエデュケーション',2000,4830)"); > $db->exec("INSERT INTO books VALUES (4,'プログラミング作法','アスキー', > 2000,2940)"); > $db->exec("INSERT INTO books (id,title,publisher,year,price) VALUES > (5,'Webアプリケーション構築入門','森北出版',2007,3360)"); ・&bold(){レコードの読み込み(select):queryメソッド} > 変数 =& $mdb2->query(SQL文) ・&bold(){レコードを1件ずつ読み込み(select):fetchRowメソッド} > $data =& $res->fetchRow(); > ※$data, $res :変数 ・while文と一緒に用いて1件ずつレコードを処理する > while ($data = $res->fetchRow()){ > 個々のレコードに対する処理 > } ※ XAMPP 1.7.7 [PHP: 5.3.8] での設定項目です。 ※ 参考サイト:ttp://codezine.jp/article/detail/2480 ---- #center(){[[前のページ>php06]] < | > [[次のページ>php08]]} #center(){◆ ◆ ◆} ----

表示オプション

横に並べて表示:
変化行の前後のみ表示: