PHP Archive
SQL Server Driver for PHP 1.1でUTF-8に対応するみたい
- 2009-02-20 (金)
- PHP
以前の記事
で書いたようにPHPからSQL Serverを弄る際には何かとトラブルが起こりがち。
PHPもSQL ServerもUnicodeで動かしているのに、問い合わせると有無を言わさずSJISで帰ってくるなんて現象もあるみたいで、自分のほうでも同様の現象に苦しめられました。
[PHP-users 30792] SQL Serverで、nvarcharの値がShift_JISで帰ってくる
いちいちmbstringで変換するのが面倒なんですよね。
ところで今日たまたま調べ物をしていると、こんなエントリーが。
Working on version 1.1 of the SQL Server Driver for PHP
SQL Server Driver for PHPはマイクロソフトが自ら開発しているPHPドライバですが、その次期バージョンでは以下のような追加があるそうです。
- Support for PHP 5.3
- Support for handling UTF-8 strings in parameters and resultset values,without requiring calls to iconv or other extensions.
- Support for scrollable results and row count
これは・・・
PHP5.3サポートはいいとして、2番目が気になりますね。
For UTF-8 strings, we are working on adding support for this and other character sets to the extension. Having the SQL Server Driver for PHP handle UTF-8 strings means that the extension will handle the translations between UTF-8 and UCS-2 (little endian) since the SQL Server database engine does not currently support the UTF-8 character set. We’re working on handling parameters and resultset values using UTF-8, as well as handling the query strings in UTF-8 format.
SQL ServerのエンジンはUTF-8をサポートしてないけど、パラメータとリザルトセットで使えるようにしてる途中よ って感じみたいですね。
これがあればいちいちmbstringやiconvを使わなくてよくなりそうなので期待です。

- Comments: 0
- Trackbacks: 0
Zend_Formが分からない
- 2009-02-16 (月)
- PHP
今開発しているシステムはZend Frameworkをふんだんに利用しているものなんですが・・・
データのバリデーションの機構もあるらしいZend_Formの使い方が全然分からない!
たとえばZend_Formで自由にレイアウトを作りたいときはどうすれば・・・?
そのあたりの情報がまだまだ少なすぎて非常に苦労してます。
基本的な使い方ならそれなりにあるのになあ・・・。

- Comments: 0
- Trackbacks: 1
Concrete5のドキュメントが見あたらない
- 2009-02-16 (月)
- PHP
Concrete5をUDCPのトップページにも採用しました。
もともと何も中身のないトップページだったので、今もConcrete5入れたばかりのデフォルトの状態です。
まあしばらくこのままでも特に困ることはないだろう・・・。
今回UDCPに採用したのは、ここでいろいろ弄ってConcrete5の使い勝手を確かめるという目的がメインです。なので、テーマも自作したりしてConcrete5でなにがどこまで出来るのが知りたいところなのですが・・・。
テーマやアドオンに関する資料が全然見あたらない・・・。
日本語資料は皆無。
というか公式サイトにすら見あたらない気がするんですが、探し方が悪いだけ?
フォーラムを読むといくらかの情報は得られるようですが・・・。
//////追記
helpのページに情報がありました。
http://www.concrete5.org/help/

- Comments: 0
- Trackbacks: 0
SugarCRMのActive Directory連携が分りづらい
- 2009-02-02 (月)
- PHP
SugarCRMをちょくちょく弄ってます。
SugarCRMはユーザー認証にLDAPを利用出来る機能があって、当然Active Directoryも利用可能なんですがその設定がいまいち分りづらかった。というか横にヒントらしきものが書いてあるんだけど、それが全く役に立ってません。
http://www.sugarcrm.com/wiki/index.php?title=Integrating_SugarCRM_with_Windows_Active_Directory
このWikiに設定方法があってようやく分った次第・・・。
システム設定の中のLDAPを有効にチェックを入れると、詳細を入力する欄が出てくるので
サーバー名:ADコントローラのサーバー名orアドレス
ポート番号:389
ベースDN:OU=users,DC=example,DC=local(適宜読み替えてください)
バインド属性:userPrincipalName
ログイン属性:samAccountName
認証ユーザー名:ユーザー名@ドメイン(user@example.com)
認証パスワード:そのユーザーのパスワード
こんな感じです。
ログイン属性のところなんて、完全にヒントが間違ってるやん・・・。
- Comments: 2
- Trackbacks: 0
Zend_Auth_Adapter_OpenIdは今のところOpenID2.0に非対応
- 2009-01-13 (火)
- PHP
やられた。
Zend FrameworkにはOpenID認証用のアダプタが用意されていて、それを使えばOpenID対応サイトが作れる・・・と思ってたんだけど
http://framework.zend.com/manual/ja/zend.auth.adapter.openid.html
なにやら、Zend Framework1.7の段階ではまだOpenID2.0に対応してない様子。
何度やってもYahoo!やmixiでの認証が出来ないから変だと思った。
なので、現段階ではPHP OpenID Libraryを使うのが良いと思われます。PHP OpenID Libraryを使って、Zend_Auth_Adapter_Interfaceを実装して自作の2.0対応アダプタを作るのが良いかもしれないね。
- Comments: 0
- Trackbacks: 0
PHPでSQL Serverをつつくとntextでエラーが出る
- 2009-01-06 (火)
- PHP
Zend FrameworkのZend Dbを使っていた時の話。
SQL Serverで動いているDBをつつくと、次のようなエラーが。
「Unicode のみの照合順序の Unicode データまたは ntext データを、DB-Library (例 ISQL) または ODBC バージョン 3.7 以前を使用しているクライアントに送信できません」
むむ、なんと。
どうもntextを使うと怒られるらしい。
ではnvarchar(MAX)はどうか?と思って試してみるも、こちらも同じ。
nvarchar(255)とかだと問題なし。
うーん、不便。
不便だけどそういうものだと割り切って使うしかないようだ。
あるいは、SELECTで読んだときにCASTしてやればうまくいくようだ。
- Comments: 0
- Trackbacks: 0
Zend_DbでSQL Server 2005が使えない
- 2008-11-13 (木)
- PHP
ZendFrameworkのZend_Dbを使おうとしたところ、まともに動かないトラブルが発生。
以前のエントリーにも書いたとおり、SQL Server 2005へ接続する際には小細工が必要だったんですが、今回はそれとは違う様子。というのも、前回はコネクトが出来ないというトラブルだけども、今回はコネクションはうまくいく。
が、query()メソッドでSQL文を書くと、エラーが出る。
しかも、エラーが出ない場合もある。
SELECT * FROM テーブル名
これだとエラーが出るが
SELECT カラム名 FROM テーブル名
これだとエラーが出ない。
なんだそりゃ。
どうやら、unicode周りでトラブルが発生している様子・・・。
結局調べるのも時間かかるので、Zend_DbはあきらめてPDOのODBCドライバを利用することに。
PHPでSQL Serverは鬼門なのかな・・・。
- Comments: 0
- Trackbacks: 0
ホーム > PHP
- Search
- Feeds
- Meta