SQL CRUDをSQL Server Driver for PHP 1.1でUTF-8対応する


CodePlex の SQL CRUD Application Wizard for PHP を利用することで
SQL Server、 SQL Azure、 Windows Azure Table Storage に対応した
CRUD 機能を持つアプリケーション( Ruby on Rails や Cake PHP の自動作成程度
のもの)を自動作成することができます。

PHP Generator

  • 現時点(2009年12月末)では生成されるアプリケーションは UTF-8 には対応していないため、一部のPHPスクリプトの修正が必要となります。
  • SQL database(SQL Server 用)で生成される php アプリケーションのUTF-8 対応にはSQL Server Driver for PHP 1.1 – October 2009 が必要となります。
  • Web Platform Installer でインストールされる SQL Server Driver for PHPのバージョンは1.0 ですので 1.1 を別途ダウンロードして設定する必要があります。

以下、手順を示します。

1. SQL Server Driver for PHP 1.1 – October 2009 をダウンロードして得られた dll ファイルをPHPの拡張フォルダに保存し、 php.ini の extentsion に登録、 IISを再起動( iisreset )します。

例. バージョン、 nts または ts 版など、自分の環境に適合した dll を選択します。

c:\Program Files (x86)\php\ext\php_sqlsrv_52_nts_vc6.dll

c:\Program Files (x86)\php\ph.ini  に選択した dll を記述します

extension=php_sqlsrv_52_nts_vc6.dll

2.  SQL CRUD Application Wizard for PHP http://sqlcrudphpwizard.codeplex.com/
インストールし、 PHPSiteGenerator を実行します。

Storage type に SQL database を指定し、データベース、テーブル、カラムを選択し[ Generate Site ] を実行すると指定したフォルダに PHPアプリケーションが生成されます。

3.  生成された php アプリケーションの UTF-8 対応

生成された php ファイルの一部を修正します。

3.1  database.php の connectionoption に CharacterSet を追記

$connectionoptions = array(“Database” => $database, “UID” => $user, “PWD” => $pass, “MultipleActiveResultSets” => ‘0’,“CharacterSet” => “UTF-8″ );

3.2  index.php に head 部分に charset を追加

<head>
<meta http-equiv=”content-type” content=”text/html; charset=utf-8″ />

また、 htmlentities の記述を削除します。

//$params = array(htmlentities($_GET[“Name”],ENT_COMPAT,’iso-8859-1′), $_GET[“ID”]);

$params = array($_GET[“Name”], $_GET[“ID”]);
 
3.3 Editor.php についても index.php と同様の編集を行います。
 
4. 動作確認
日本語を使用して更新した内容を SQL Server Management Studio にて文字化けしていないことを確認します。
以上


タグ:


コメントをどうぞ