0
私は/ 400としてDB2テーブルで作業しています。私はそれに対して基本的なクエリを実行しようとしているが、テーブル名には.
が含まれています。たとえば、my.table
はテーブル名です。テーブル名に特殊文字を含むIBM DB2テーブルにアクセスするPDO_ODBC
問題は、PDOがデータベース名my
をテーブル名table
で指定していると考えていることです。したがって、準備されたステートメントは失敗しており、テーブルtable
はデータベースmy
に存在しません。テーブル名の変更はオプションではありません。
テーブル名のピリオドを処理する最も良い方法は何ですか?私はその期間をエスケープしようとしましたが、何の成功もありませんでした。
$sql= "select * from '[THE.TABLE]'";
try {
$statement = $this->db->query($sql);
$results = $statement->execute();
foreach ($results as $result) {
print_r($result);
}
exit;
}
catch (\Exception $e)
{
//log issue and other stuff
}
アプリケーションは、Zend Frameworkの中で実行されている、私は修正立つ2.
テーブル名の前後にバッククォートを入れてみてください。 '\' my.table \ '' – aynber
[MySQLでは一重引用符、二重引用符、バッククォートを使用する場合](https://stackoverflow.com/questions/11321491)/when-to-use-single-quotes-double-quotes-and-backticks-in-mysql) – aynber
バックティックを試しました。それはうまくいかなかった。 – Knight