質問 > その他 > PHPバージョンアップ後、「全ページ対象SEO管理プレミアム 1.7 プラグイン」につき不具合 |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
wa.shi |
投稿日時: 2018/6/14 16:22
対応状況: 解決済
|
常連 登録日: 2018/2/20 居住地: 投稿: 45 |
PHPバージョンアップ後、「全ページ対象SEO管理プレミアム 1.7 プラグイン」につき不具合 EC-CUBE Version 2.12.3
PHP Version 5.6.36 DB サーバー MySQL 5.5.38 WEB サーバー Apache/2.2.15 (CentOS) いつもお世話になっております。 そして連投大変申し訳ございません。 昨日、PHPのバージョンを5.3 → 5.6 へアップし、 DB処理エラーにつき一度サイト全体がシステムエラーとなり、 下記の error.log ようなエラーでしたので、 DB上で「全ページ対象SEO管理プレミアム プラグイン」を無効にしてみたら とりあえず大丈夫でした。 しかし、このまま無効にしているわけにもいかなく…。 PHP5.3の際は問題なかったのですのが、 原因等、検討が付きましたら ご教授頂けますでしょうか。 どうかよろしくお願い致します。 error.log内容 2018/nn/nn 19:02:09 [/park/detail.php] Fatal error(E_USER_ERROR): DB処理でエラーが発生しました。 SQL: [PREPARE mdb2_statement_mysql_16726a17b28fec836600a7abcc6020718d779dbb23 FROM 'SELECT \'category\' AS type, category_id AS id, category_name AS name, parent_category_id AS parent_id, \'products/list.php?category_id=\' || category_id AS url, plg_seoextension_sitemap, plg_seoextension_sitemap_https FROM dtb_category WHERE category_id <> 0 AND (plg_seoextension_sitemap = 1 OR plg_seoextension_sitemap_https = 1) ORDER BY rank DESC '] PlaceHolder: [array ( )] MDB2 Error: not found [Error message: Unable to bind to missing placeholder: 0] on [/home/bbq/html/data/class/SC_Query.php(1064)] from 126.254.5.210 customer_id = /ドメイン/html/park/detail.php(38): LC_Page_Park_Detail_Ex->process /ドメイン/html/data/class_extends/page_extends/park/LC_Page_Park_Detail_Ex.php(56): LC_Page_Park_Detail->process /ドメイン/html/data/class/pages/park/LC_Page_Park_Detail.php(118): LC_Page->sendResponse /ドメイン/html/data/class/pages/LC_Page.php(135): SC_Helper_Plugin->doAction /ドメイン/html/data/class/helper/SC_Helper_Plugin.php(133): call_user_func_array (): SeoExtension->process /ドメイン/html/data/downloads/plugin/SeoExtension/SeoExtension.php(462): SeoExtension->getSitemapCategories /ドメイン/html/data/downloads/plugin/SeoExtension/SeoExtension.php(895): SC_Query->select /ドメイン/html/data/class/SC_Query.php(167): SC_Query->getAll /ドメイン/html/data/class/SC_Query.php(284): SC_Query->execute /ドメイン/html/data/class/SC_Query.php(1027): SC_Query->error /ドメイン/html/data/class/SC_Query.php(1064): trigger_error 該当のソースコード /** * デバイスごとに各ページmeta情報をセットする * * @param LC_Page $objPage * @param int $device デバイスタイプid * @return void */ function setMeta($objPage, $device){ $objQuery =& SC_Query_Ex::getSingletonInstance(); $page = $_SERVER['SCRIPT_NAME']; $productId = $_GET['product_id']; $categoryId = $_GET['category_id']; if(!$categoryId) $categoryId = 0; $col = 'plg_seoextension_author, plg_seoextension_description, plg_seoextension_keyword, plg_seoextension_robots, plg_seoextension_copyright, plg_seoextension_coverage, plg_seoextension_area, plg_seoextension_classification, plg_seoextension_rating, plg_seoextension_title, plg_seoextension_h1'; if(strstr($page, 'products/detail.php')){ $result = $objQuery->select($col, 'dtb_products', 'product_id = ?', array($productId)); }elseif(strstr($page, 'products/list.php')){ $col .= ',plg_seoextension_p'; $result = $objQuery->select($col, 'dtb_category', 'category_id = ?', array($categoryId)); }elseif($page == ROOT_URLPATH.'index.php'){ $result = $objQuery->select($col, "dtb_pagelayout", "url = 'index.php' AND device_type_id = ?", array($device)); //ADD }elseif(strstr($page, 'park/detail.php')){ $url_name = $_GET['url_name']; $result = $objQuery->select($col, 'dtb_park', 'url_name = ?', array($url_name)); }else{ $arrPageUrl = explode('/', $page); $cnt = count($arrPageUrl); $page = $arrPageUrl[$cnt-2].'/'.$arrPageUrl[$cnt-1]; $result = $objQuery->select($col, "dtb_pagelayout", "url LIKE '%".$page."%' AND device_type_id = ?", array($device)); } foreach ($this->arrColumn as $column) { $objPage->$column = $result[0][$column]; } } // ツリーから検索 PCサイトマップページ用 function getSitemapParent(&$tree, $id, &$p) { foreach ($tree as $key => $value) { if ($value['type'] == 'category' && $key == $id) { $p['parent'] = &$tree[$key]; return true; } if (isset($value['children'])) { $result = $this->getSitemapParent($tree[$key]['children'], $id, $p); if ($result) return true; } } return false; } // カテゴリツリーを作成 PCサイトマップページ用 function getSitemapCategoryTree($categories, $products) { $rows = array_merge($categories, $products); $categoryTree = array(); foreach ($rows as $row) { if ($row['parent_id'] == 0) { $categoryTree[$row['id']] = $row; } else { $p = array(); $this->getSitemapParent($categoryTree, $row['parent_id'], $p); if (!isset($p['parent']['children'])) { $p['parent']['children'] = array(); } $p['parent']['children'][$row['id']] = $row; } } return $categoryTree; } // カテゴリリストを取得 PCサイトマップページ用 function getSitemapCategories() { $objQuery =& SC_Query::getSingletonInstance(); $objQuery->setOrder('rank DESC'); return $objQuery->select( "'category' AS type, category_id AS id, category_name AS name, parent_category_id AS parent_id". ", 'products/list.php?category_id=' || category_id AS url, plg_seoextension_sitemap, plg_seoextension_sitemap_https", "dtb_category", "category_id <> 0 AND (plg_seoextension_sitemap = 1 OR plg_seoextension_sitemap_https = 1)" ); } // 商品リストを取得 PCサイトマップページ用 function getSitemapProducts() { $objQuery =& SC_Query::getSingletonInstance(); $objQuery->setOrder('parent_id, rank DESC'); return $objQuery->select( "'product' AS type, T1.product_id AS id, name, category_id AS parent_id". ", 'products/detail.php?product_id=' || T1.product_id AS url, plg_seoextension_sitemap, plg_seoextension_sitemap_https", "dtb_products T1 LEFT JOIN dtb_product_categories T2 ON T2.product_id = T1.product_id", "del_flg = 0 AND status = 1 AND (plg_seoextension_sitemap = 1 OR plg_seoextension_sitemap_https = 1)" ); } // ページリストを取得 PCサイトマップページ用 function getSitemapPagelayouts() { $objQuery =& SC_Query::getSingletonInstance(); $objQuery->setOrder('plg_seoextension_rank DESC, page_id'); $rows = $objQuery->select( 'page_id, page_name, url, plg_seoextension_sitemap_name, plg_seoextension_sitemap_indent, plg_seoextension_sitemap_https', 'dtb_pagelayout', '(plg_seoextension_sitemap = 1 OR plg_seoextension_sitemap_https = 1) AND device_type_id = 10 AND page_id != 0' ); foreach ($rows as $key => $row) { $rows[$key]['url'] = preg_replace('/^index.php$/', '', $rows[$key]['url']); $rows[$key]['url'] = preg_replace('/\/index.php$/', '/', $rows[$key]['url']); } return $rows; } |
468 |
投稿日時: 2018/6/15 10:58
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: PHPバージョンアップ後、「全ページ対象SEO管理プレミアム 1.7 プラグイン」につき不具合 Unable to bind to missing placeholder: 0
というメッセージですので、プレースホルダーが見つからないという意味かと思います。 もしかしたら、urlの項目の「products/list.php?category_id=」にある「?」に反応しているのではないでしょうか? あと、1点気になったのですが、SQL文の「'products/list.php?category_id=' || category_id AS url」の箇所で 文字連結をしてURLを出力しようとしているように見受けられますが、 通常、MySQLは「||」は文字連結ではなく、ORとして扱われると思います。 「||」を文字連結関数のCONCATとして動作するように設定をされているのでしょうか?
|
wa.shi |
投稿日時: 2018/6/15 15:15
対応状況: −−−
|
常連 登録日: 2018/2/20 居住地: 投稿: 45 |
Re: PHPバージョンアップ後、「全ページ対象SEO管理プレミアム 1.7 プラグイン」につき不具合 ご回答ありがとうございます。
引用:
ご回答いただきました内容を基に 調査させて頂きます。 何か進展等ございましたら ご報告させて頂きます。 |
wa.shi |
投稿日時: 2018/6/19 10:27
対応状況: −−−
|
常連 登録日: 2018/2/20 居住地: 投稿: 45 |
Re: PHPバージョンアップ後、「全ページ対象SEO管理プレミアム 1.7 プラグイン」につき不具合 その通りでございました。
本番環境なので、 一先ず、SQL文を改訂し その後、MYSQLの設定を見直していこうと 思います。 この度は、誠に有難うございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |