バージョン選択

フォーラム

メニュー

オンライン状況

72 人のユーザが現在オンラインです。 (57 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 72
もっと...

サイト内検索

質問 > その他 > ProductController内でSELECT文を実行し、取得した値を表示する

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
masak0521
投稿日時: 2025/6/23 11:04
対応状況: −−−
半人前
登録日: 2025/6/16
居住地:
投稿: 11
ProductController内でSELECT文を実行し、取得した値を表示する
▼テンプレート
[EC-CUBE]4.3
[PHP]8.3
[データベース]Mysql
[現象]
現在2系から4系への移植作業を行っているのですが、
商品詳細画面に別テーブルから取得したデータを表示したいと思っております

納期などの問題もあり、一旦セキュリティ面の部分は置いておいて機能としての実装を優先したいと考えております。

上記前提で、先日当フォーラムで質問した際に「おすすめは出来ないがコントローラー内でもPHPを書いてSQL実行は可能」という返信をいただき試しております。


下記のようなコードでMySQLのDBに接続し「TEST_TABLE」の値を取得、配列に入れてRetuenに加え
Twig側で表示データとして使用したいと思っております。

下記をアップロードしキャッシュ削除した結果エラーとなりPDOがネームスペースに無いという結果が返ってきました。
「Attempted to load class "PDO" from namespace "Customize\Controller".
Did you forget a "use" statement for another namespace?」

※下記を他のフォルダで実行したところ値が取れていたので、
 /app/Customize/Controllerで何か制限的なものがかかっているのか・・・

知識が足りないため、見当違いな質問になってしまっているかもしれませんが、
ご助言いただけると助かります。

==========================================================================
// $host = localhostで動かなければipアドレスを記載
$host = 'ホスト名'; // データベース名
$dbname = 'DB名'; // ユーザー名
$dbuser = 'ユーザー名'; // パスワード
$dbpass = 'パスワード';

// データベース接続クラスPDOのインスタンス$dbhを作成する
try {
$dbh = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8mb4", $dbuser, $dbpass);
$array_all = 'OK';
// PDOExceptionクラスのインスタンス$eからエラーメッセージを取得
} catch (PDOException $e) {
// 接続できなかったらvar_dumpの後に処理を終了する
var_dump($e->getMessage());
$array_all = 'NG';
exit;
}

$SQL="SELECT * FROM TEST_TABLE"; // SQLをセット
$stmt = $dbh->prepare($sql); // SQLを実行
$stmt->execute();

$TEST_List = array();


while($rs = $stmt->fetch(PDO::FETCH_ASSOC)){
$TEST_List[] = array(
"key_no" => $rs['key_no'],
"data1" => $rs['data1'],
"data2" => $rs['data2'],
);
}


return [
'title' => $this->title,
'subtitle' => $Product->getName(),
'form' => $builder->getForm()->createView(),
'Product' => $Product,
'is_favorite' => $is_favorite,
'TEST_List' => $TEST_List, //ここを追加
];
==========================================================================




masak0521
投稿日時: 2025/6/23 11:11
対応状況: −−−
半人前
登録日: 2025/6/16
居住地:
投稿: 11
Re: ProductController内でSELECT文を実行し、取得した値を表示する
※追記
旧2系にあったように、SQL文をそのまま実行できるクエリがあればそちらを教えていただけると助かります


=============================================
$objQuery = new SC_Query();

$sql = "SELECT * FROM TEST";

$TEST_LIST = $objQuery2->getall($sql);
=============================================
mcontact
投稿日時: 2025/6/23 11:14
対応状況: −−−
登録日: 2022/1/22
居住地:
投稿: 1732
Re: ProductController内でSELECT文を実行し、取得した値を表示する
ここに記載されています。
参考に。。。
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=28951&forum=10&post_id=115330#forumpost115330


----------------
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EC-CUBEインテグレートパートナー【ゴールド】ランク
M&I Works
URL: https://miworks.biz/
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

mcontact
投稿日時: 2025/6/23 20:49
対応状況: −−−
登録日: 2022/1/22
居住地:
投稿: 1732
Re: ProductController内でSELECT文を実行し、取得した値を表示する
「Attempted to load class "PDO" from namespace "Customize\Controller".
Did you forget a "use" statement for another namespace?」


エラー内容は、PDOのクラスをロードしようとしたが、PDOクラスのuse記述にて名前記述がない為ロード出来ていない為です。
先に記載している参考サイトの投稿を見て参考にしてみてください。
PDOを使用するにはPDOライブラリのuse記述にてロードする必要があります。


----------------
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EC-CUBEインテグレートパートナー【ゴールド】ランク
M&I Works
URL: https://miworks.biz/
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

masak0521
投稿日時: 2025/6/24 13:25
対応状況: −−−
半人前
登録日: 2025/6/16
居住地:
投稿: 11
Re: ProductController内でSELECT文を実行し、取得した値を表示する
こちらにて回答をしたのですが

https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=28951&forum=10&post_id=115330#forumpost115330

おかげさまでクラスの取得からSQLの実行までは出来たようなのですが、twig側でdumpで表示しても取得した配列の中身が空のままとなっているようです。

試せることは試してみたのですが…おそらく根本的に抜けている部分がある気がしております…

※回答は上記のツリーの方で吸収したいと思いますので、ご回答いただける場合は宜しくお願い致します
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は107,946名です
総投稿数は112,704件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2334
5
umebius
2085
6
h_tanaka
2018
7
yuh
1900
8
mcontact
1732
9
red
1582
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
805
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
balisys
502


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.