質問 > フロント機能 > 別のもう一つのDatabaseにアクセスする方法 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
osamuya |
投稿日時: 2014/6/4 13:11
対応状況: −−−
|
常連 登録日: 2013/2/4 居住地: 東京 投稿: 65 |
別のもう一つのDatabaseにアクセスする方法 いつもお世話になっております。 EC-CUBEで利用しているDB以外からある値をinsert,update,deleteみたいなことをしたくて、いろいろやっている最中ではあるのですが、/pages/以下のクラスファイル内のaction()内にSC_Helper_DBをよんで直接$dsnに別DBのパラメーターを入れてやってみたのですが、 $cdb = new SC_Helper_DB(); $dsn = array('phptype' => DB_TYPE, 'username' => DB_USER, 'password' => DB_PASSWORD, 'protocol' => 'tcp', 'hostspec' => DB_SERVER, 'port' => DB_PORT, 'database' => 'another_DB', ); $re = $cdb->sfColumnExists('M_USER','USER_ID','',$dsn,'false'); 最後の$cdb->sfColumnExistsを実行するとエラーになってしまいます。 EC-CUBEのデフォルトのDB接続の際のセッションを見にいって「ない」といって叱られている模様です。 おそらくなのですが、 ・セッションをスキップするか、 ・同様にセッションを書き込んであげるか、 (あるいは全く別の方法があるか…) だと思うのですが、具体的にどうすればよいのかは今調べている最中です。 その対象の別DBには、EC-CUBE以外からはアクセスできていて普通に使えます。 また、 $db = mysql_connect ('localhost', 'another_user', 'xxxxxxxx'); mysql_query("set names utf8"); mysql_select_db('another_DB'); ..... というように普通に書いてみましたが、同じようにdtb_sessionにセッションがないといって叱られました。 もし詳しい方でこのようなカスタマイズしたことのある方、 または、すでにこのようなカスタマイズしたことのある方いましたら、 何かしらご教授お願いできますでしょうか。 よろしくお願いいたします。 EC-CUBEのログ Fatal error(E_USER_ERROR): DB処理でエラーが発生しました。 SQL: [SELECT CASE WHEN EXISTS(SELECT * FROM dtb_session WHERE sess_id = ? ) THEN 1 ELSE 0 END] MDB2 Error: no such table _doQuery: [Error message: Could not execute statement] [Last executed query: PREPARE mdb2_statement_mysql_15xx7cb06cecc9dfxx19a1d6fc3df9aa3c3dbcacxx FROM 'SELECT CASE WHEN EXISTS(SELECT * FROM dtb_session WHERE sess_id = ? ) THEN 1 ELSE 0 END'] [Native code: 1146] [Native message: Table 'shop.dtb_session' doesn't exist] on [/home/shop/data/class/SC_Query.php(1007)] from 123.456.789.xxx customer_id = (): session_write_close (): SC_Helper_Session->sfSessWrite /home/shop/data/class/helper/SC_Helper_Session.php(89): SC_Query->exists /home/shop/data/class/SC_Query.php(151): SC_Query->getOne /home/shop/data/class/SC_Query.php(647): SC_Query->prepare /home/shop/data/class/SC_Query.php(948): SC_Query->error /home/shop/data/class/SC_Query.php(1007): trigger_error 環境 EC-CUBE 2.12.6 Linux epsfzecw 2.6.32-042stab055.16 #1 SMP Fri Jun 8 19:22:28 MSD 2012 x86_64 MySQL 5.1.73 Apache/2.2.15 (CentOS) PHP 5.3.3 (Core, date, ereg, libxml, openssl, pcre, zlib, bz2, calendar, ctype, hash, filter, ftp, gettext, gmp, session, iconv, Reflection, standard, shmop, SPL, SimpleXML, sockets, exif, tokenizer, xml, apache2handler, curl, dom, fileinfo, gd, json, mbstring, mysql, mysqli, PDO, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, sqlite3, wddx, xmlreader, xmlwriter, xsl, zip) GD 有効 (GD Version => bundled (2.0.34 compatible), FreeType Support => 1, FreeType Linkage => with freetype, T1Lib Support => , GIF Read Support => 1, GIF Create Support => 1, JPEG Support => 1, PNG Support => 1, WBMP Support => 1, XPM Support => 1, XBM Support => 1, JIS-mapped Japanese Font Support => ) HTTPユーザーエージェント Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36 |
shutta |
投稿日時: 2014/6/4 15:12
対応状況: −−−
|
仙人 登録日: 2010/2/4 居住地: 関西 投稿: 835 |
Re: 別のもう一つのDatabaseにアクセスする方法 試しに同様の処理を差し込んでみましたが、正常に動作するようです。
差し込む場所によって挙動が異なるんですかね? ちなみに、どのページクラスのどの位置に実装されましたか?
|
osamuya |
投稿日時: 2014/6/4 18:00
対応状況: −−−
|
常連 登録日: 2013/2/4 居住地: 東京 投稿: 65 |
Re: 別のもう一つのDatabaseにアクセスする方法 shuttaさん
返信ありがとうございます。 今のところ非常に適当なのですが、 /data/class/pages/LC_Page_Entry_Kiyaku.php /data/class/pages/LC_Page_Cart.php 共に function action() { .... } 内の最後辺りに書きました。 私もちょっといろいろな場所で試してみます。。。 ありがとうございます。 ちなみにshuttaさんはどのクラスファイルに処理してみたのでしょうか? 問題なければ私もそれで試してみたいと思います。 よろしくお願いいたします。 |
shutta |
投稿日時: 2014/6/4 18:30
対応状況: −−−
|
仙人 登録日: 2010/2/4 居住地: 関西 投稿: 835 |
Re: 別のもう一つのDatabaseにアクセスする方法 引用:
パスが微妙に異なりますが、 /data/class/pages/entry/LC_Page_Entry_Kiyaku.php /data/class/pages/cart/LC_Page_Cart.php ですよね? どちらも試してみましたが、問題ありませんでした。 引用:
商品詳細ページ /data/class/pages/products/LC_Page_Products_Detail.php で試していました。 あと、ログインしているかしていないかで違いが出るのかと思って試してみましたが、どちらも問題ありませんでした。
|
osamuya |
投稿日時: 2014/6/9 15:26
対応状況: 保留
|
常連 登録日: 2013/2/4 居住地: 東京 投稿: 65 |
Re: 別のもう一つのDatabaseにアクセスする方法 shuttaさん
ありがとうございます。 同じようなやり方でやってみたものの同じエラーにハマってなかなか実現できないでおります。何かしらのやり方があると思うので模索中であります。 いろいろとありがとうございます! |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |