Zend_Dbで生SQLを使う

| コメント(0) | トラックバック(0)

こんにちは、バズー株式会社、開発チームリーダーの清水です。

バズーでは、アプリケーションプラットフォームとして、PHP の Zend Framework を全面的に採用しています。データベースのORマッパーとして標準コンポーネントの Zend_Db を使っているのですが、LOCK TABLES をかけようとして「SQLSTATE[HY000]: General error: 2030 This command is not supported in the prepared statement protocol yet」というエラーに遭遇してしまいました。

■NGだったコード

$db = Zend_Db_Table_Abstract::getDefaultAdapter();
$db->query("LOCK TABLES xxx WRITE;");

Zend Framework を調査した結果、PDO を直接つかって生 SQL を発行する方法を思いつきました。

■OKだったコード

$db = Zend_Db_Table_Abstract::getDefaultAdapter();
$db->getConnection()->exec("LOCK TABLES xxx WRITE;");

getConnection() で PDO オブジェクトが返ってくるので、その exec メソッドを使います。ただし、この技は PDO でしか使えないのでご注意ください(DB2、ORACLE、Mysqli には使えません)。

トラックバック(0)

トラックバックURL: http://tech.buzoo.jp/mt4/mt-tb.cgi/121

コメントする

就活アワード2012 受賞

本格SF宇宙戦争シュミレーションゲーム 宇宙神話モバイルプラネット

格闘系美少女学園RPG 闘女伝説モバイル学園

携帯サイト作成のバズー株式会社

名経営者を志す 熱血社長ブログ

感動を与える仕事をする!COOのブログ

攻めのド営業 営業本部長ブログ

事業家を目指す新卒者ブログ

mixiアプリ企画・開発

バズービル写真

セレブスタイル

芝大門スタジオ

キッズスタイル

プライバシーマーク

フィードメーター - 携帯サイト開発を極める!開発チームリーダーのブロ..

あわせて読みたいブログパーツ

カテゴリ

プロフィール

バズー株式会社
執行役員 CTO
海外事業部責任者
清水 樹 (Jun Shimizu)
慶應義塾大学理工学部卒業
日立ソフトウェアエンジニアリング出身
インドネシアのジャカルタでオフショア開発拠点設置中。