【PHP】【Zend Framework】さくらサーバ (MySQL) / Zend Frameworkを使って、Hello World

* 【Zend Framework】ページ移動で Hello Worldまでいったので、データベースを使えるようにする
http://blogs.yahoo.co.jp/dk521123/24269539.html

環境設定編

http://bali.sakura.ne.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0/%E3%81%95%E3%81%8F%E3%82%89%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%81%A7pdo_mysql/
を参考に設定。ただ、現在(2011/05/22)では、↑より、さくらインターネットの対応が良くなっている模様。

実際に行った手順

余計な処理も入ってるかも。
(1) ↓の時に使用したSSHクライアントソフト(Poderosa)を立ち上げ、さくらサーバに接続し、以下のコマンドを入力し、pearはバージョン5となっていることを確認 

pear config-show
http://blogs.yahoo.co.jp/dk521123/24109404.html
(2) PECLでPDOモジュールを探し(「pecl search pdo」)、その後に以下のコマンドを入力する。(無事に終われば、SSHクライアントソフトを閉じていい)

cd PDO_MYSQL
phpize
./configure
make
* 詳しくは以下。
http://bali.sakura.ne.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0/%E3%81%95%E3%81%8F%E3%82%89%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%81%A7pdo_mysql/
(3) php.iniに以下を追加する。

extension_dir = /home/【ドメイン名】/lib/php
extension=pdo_mysql.so
extension=php_pdo.dll
extension=php_pdo_mysql.dll

準備編

さくらサーバのサーバコントロールパネルから、[データベースの設定]-[管理ツールログイン]から、phpMySQLAdminを開き、テスト用のテーブル・データを作成する。
* 今回は、以下のサイトのテーブルとデータを利用する
http://codezine.jp/article/detail/1961?p=3
CREATE TABLE message_board(
  id int primary key,
  message varchar(100)
)

INSERT INTO message_board VALUES(1, 'Hello, world!');
INSERT INTO message_board VALUES(2, 'How are you?');
※さくらサーバのデータベースは、1個だけ

サンプル

[1] Zend Frameworkを使わずに、参照する

helloWorld.php

<html><body>
<?php

	$connect = mysql_connect( "【DB サーバ】", "【DBユーザ名】", "【DBパスワード】" );
	if( $connect == false )
	{
		die("MySQL connextion error");
	}
	mysql_set_charset( "utf8" );
	mysql_select_db( "naonosekicho" );

	$sql  = " SELECT * FROM message_board ";
	$res = mysql_query( $sql );
	while( $row = mysql_fetch_array( $res ) )
	{
		print("<p>" . $row["id"] . "</p>");
		print("<p>" . $row["message"] . "</p>");
	}
	mysql_free_result($res);
	mysql_close();
?>
</body></html>

[2] Zend Frameworkを使って、参照する

helloWorld2.php

http://codezine.jp/article/detail/2449?p=2
<?php
require_once 'Zend/Db/Adapter/Pdo/Mysql.php';

$db_info = array('host'     => '【DB サーバ】',
                 'username' => '【DBユーザ名】',
                 'password' => '【DBパスワード】',
                 'dbname'   => '【DB名】');

$db = new Zend_Db_Adapter_Pdo_Mysql($db_info);

$sql = "SELECT message FROM message_board";
$result = $db->fetchAll($sql);

foreach ($result as $row)
{
    echo $row['message'] . '<br/>';
}

補足:さくらサーバのデータベース接続の設定値について

*【DB サーバ】,【DBユーザ名】,【DBパスワード】、【DB名】については、さくらサーバのサーバコントロールパネルから、[データベースの設定]の『* データベースと管理ツール *』の下の表に載っている。

 + 【DB サーバ】:「データベース サーバ」にあたる(例「mysql***.db.sakura.ne.jp(***は数字。この設定値ではまってしまった)」)
 + 【DBユーザ名】:「データベース ユーザ名」
 + 【DB名】:「データベース名」