Posted by & filed under FuelPHP, MySQL, PHP, Tech.

 

ひさびさのふえるネタ。FuelPHP を触り始めたとき、SQL クエリで DUPLICATE KEY UPDATE 構文が使えるのかな?と Google 先生に聞いたことがありました。

特に FuelPHP のドキュメント内、Query Builder にも ON DUPLICATE については書かれてないので使えないものと思ってはいます(ちなみに Core の中にもなし)が、ひさしぶりに検索したら日本語の結果がなかったのでメモしておきます。

 

ads

 

どの情報が有力なのか?

Mirror image
where are the joneses via photo pin cc

検索結果で出てくるのは有名な stackoverflow (英語サイト)。まさにピンポイントなページがありました。

 

support ON DUPLICATE with the DB Query Builder?

この質問に対して、FuelPHP 中の人、WanWizard(@WanWizard)氏が答えています!

 

[Google翻訳にて]
いいえ、これはQB(おそらくQuery Builder の略と思われる:god_valley注.)でサポートされていません。

現在FuelPHP Query Builderは、ターゲットプラットフォームに依存しない汎用的なSQLジェネレータを持っているので、それだけでは、ANSI SQLを生成することができます。DUPLICATE KEYでMySQL固有のものです。

バージョン2.0では、全体のクエリー·ビルダーは、プラットフォーム固有のSQL方言をサポートするために、現在書き直されているところです。この特定のステートメントのサポートがロードマップにしかしではありません。

 

[原文]
No, this is not supported by the QB.

Currently the FuelPHP Query Builder has a generic SQL generator, independent of the target platform, so it can generate ANSI SQL only. ON DUPLICATE KEY is MySQL specific.

For version 2.0, the entire Query Builder is being rewritten at the moment to support platform specific SQL dialects. Support for this specific statement is however not on the roadmap.

 

とのこと。

 

まとめ

現在の1.x系では依存する方言(今回でいう Mysql 特有の ON DUPLICATE 構文など)はサポートしてませんよ、でした。

ただ、2.0にバージョンが上がるときには Query Builder でプラットフォーム依存の方言をサポートしているかも?!FuelPHP の進化にこうご期待!

 

Related Posts Plugin for WordPress, Blogger...

Leave a Reply

  • (will not be published)