smartyのフレームワークを利用して、データベースから取得したデータを表示するプログラムを作っています。
データベースへのアクセス方法はDB2を用いており、アクセス先はAS/400です。
その中で、ファイル名に¥マークが入ったファイルを扱う必要があるのですが、
エラーが出てしまいレコードを取得できません。
ログを見たところ、データベースへのアクセスは成功しているのですが、
実際に指定したファイルを見つけるところでエラーとなっているようでした。
ファイル名とフィールド名は、すべて「AA¥BBBB」という形式で作られています。
また、ログに記録されたエラーは下記のようなものです。
トークン¥は正しくない。有効なトークンは+ -です。SQLCODE=-104 SQL::SELECT "AA¥FILE"."AA¥FIELD"
調べたところ、¥マークは特殊文字でありエスケープが必要だということはわかりました。
しかし、echoで書き出したりする際の¥¥では、ファイル名の指定が正常に行えませんでした。
アクセス先のファイル自体には、¥マークを抜いた状態に各名称を変更した後であれば、
正常にアクセスしレコードを持ってくることが出来ます。
データベースの管理上、¥マークを抜いた状態のファイル名に変更し運用するというのは難しいです。
以下のようにファイル名やフィールド名を指定する場合で、¥付きの文字列を扱う際にはどうすれば良いのでしょうか?
php
1try { 2 3 $dbmaster = new DBMASTER('AA¥FILE'); 4 $target['AA¥FIELD = ?'] = 'AA¥FIELD AS AA¥FIELD'; 5 6 $arr = $dbmaster->fetchAll(); 7 8}
皆様のお力添えをお願いいたします。
回答2件
あなたの回答
tips
プレビュー