We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 6158
    • 224 Posts
    こんにちは。


    MODx には「MODx Database AP」という道具があるので、折角なら自分の用意
    しているテーブルへのアクセスもその api を使って行えないかと考えています。

    modx のシステム上で使われているテーブル (modx_*) ではなく、独自テーブル
    を用意しなければならないような スニペット をご存じないですか。参考のため
    にソースを読みたいと考えています。
      • 8382
      • 253 Posts
      custarさん。
      modx->dbはtable_prefixと全く関係なく構築されています。
      ですから、御希望のような「modx_」の付いていないテーブルも全く同じように扱えます。
      是非、dbapiのソースも呼んでみることをお勧めします。

      manager/includes/extenders/dbapi.mysql.class.inc.php
        • 6158
        • 224 Posts
        おはようございます。

        eastbind さん、お返事ありがとうございます。

        Quote from: eastbind at Oct 29, 2006, 10:23 AM
        modx->dbはtable_prefixと全く関係なく構築されています。
        ですから、御希望のような「modx_」の付いていないテーブルも全く同じように扱えます。
        そうなんですか。違うデータベースやテーブルをどう呼べばいいか、ソースを
        読んでみる事にします。

        Quote from: eastbind at Oct 29, 2006, 10:23 AM
        是非、dbapiのソースも呼んでみることをお勧めします。
        API のドキュメントを参考に PDO を使った独自クラスを作ってしまいましたが、
        システム上の API を使った方が後々楽なので、読んでみます。


        情報、本当にありがとうございました。
          • 8382
          • 253 Posts
          custarさん。
          MODx 1.xで dbapi関係がPDOベースのものになる事が予告されています。
          OpenGeek氏はgeneral dicussionなどで何度もそう表明しているので、検索して読んでみるのも一興でしょう。
          ですから、今後 $modx->dbも変化するかもしれません。という事を御理解した上で御利用ください。 wink


          P.S. 私、お名前をずっと間違えてましたね...申し訳ありません。
            • 6158
            • 224 Posts
            eastbind さん、再度の情報ありがとうございます。

            Quote from: eastbind at Oct 29, 2006, 09:19 PM
            MODx 1.xで dbapi関係がPDOベースのものになる事が予告されています。
            OpenGeek氏はgeneral dicussionなどで何度もそう表明しているので、検索して読んでみるのも一興でしょう。
            へぇ、そんな RoadMap なんですね。でも、1.x ということはまだまだ先の話で
            すが、依存しすぎないようにしておきます。

            Quote from: eastbind at Oct 29, 2006, 09:19 PM
            お名前をずっと間違えてましたね...申し訳ありません。
            大丈夫、気にしないで下さい。打ち間違いなんて、私はしょっちゅうです。
              • 6158
              • 224 Posts
              Quote from: eastbind at Oct 29, 2006, 10:23 AM
              modx->dbはtable_prefixと全く関係なく構築されています。
              なるほど、dbapi.mysql.class.inc.php を見ると仰る通りですね。
              function connect ($host = '', $dbase = '', $uid = '', $pwd = '', $persist = 0) {
              	global $modx;
              	$uid = $uid ? $uid : $this->config['user'];
              	$pwd = $pwd ? $pwd : $this->config['pass'];
              	$host = $host ? $host : $this->config['host'];
              	$dbase = $dbase ? $dbase : $this->config['dbase'];
              	if (!$this->conn = ($persist ? mysql_pconnect($host, $uid, $pwd) : mysql_connect($host, $uid, $pwd))) {

              $this->config[ ] は modx インストール時に生成される config.inc.php に記
              録された情報を単に読み込んだだけの変数ですから、connect() の引数に自分
              の使いたいデータを設定するだけですね。

              納得。database api を使ってもあっさり出来そうです。