【发布时间】:2018-05-18 08:10:19
【问题描述】:
我正在 as/400 上处理 DB2 表。我正在尝试对其运行基本查询,但表名中包含.。例如:my.table 是表名。
问题是 PDO 认为我正在用我的表名 table 指定数据库名称 my。因此,准备好的语句失败并说数据库my 中不存在这样的表table。更改表名不是一种选择。
在表名中处理句点的最佳方法是什么?我尝试过逃离这段时期,但没有任何成功。
这是我的问题的一些示例代码:
$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` -
我也试过反勾号。它没有用。
-
恕我直言,我不认为这是重复的,因为我没有使用 MySQL,而是通过 ODBC 使用 DB2。我对这种类型的数据库访问相当陌生,但我已经尝试过引号和反引号,但没有成功。
-
PDO 对表名一无所知,也不关心它们。你得到什么错误?
标签: php pdo zend-framework2 db2 odbc