Php Zend_Db_表在使用PDO_OCI驱动程序时向表名添加双引号

Php Zend_Db_表在使用PDO_OCI驱动程序时向表名添加双引号,php,oracle,zend-framework,pdo,Php,Oracle,Zend Framework,Pdo,我尝试将Zend_Db_表与PDO_OCI驱动程序一起使用,但当我尝试使用SELECT时,我得到了他的异常: Message: SQLSTATE[HY000]: General error: 942 OCIStmtExecute: ORA-00942: table or view does not exist (/var/tmp/portage/dev-lang/php-7.1.4/work/sapis-build/apache2/ext/pdo_oci/oci_statement.c:159)

我尝试将Zend_Db_表与PDO_OCI驱动程序一起使用,但当我尝试使用SELECT时,我得到了他的异常:

Message: SQLSTATE[HY000]: General error: 942 OCIStmtExecute: ORA-00942: table or view does not exist (/var/tmp/portage/dev-lang/php-7.1.4/work/sapis-build/apache2/ext/pdo_oci/oci_statement.c:159), query was: SELECT "all_tables"."table_name" FROM "all_tables"
这是我的代码:

class Application_Model_Tables extends Coret_Db_Table_Abstract
{
    protected $_name = 'all_tables';

    public function getAll()
    {
        $select = $this->_db->select()
            ->from($this->_name, 'table_name');
        return $this->selectAll($select);
    }
}
这是有效的代码:

$db = Zend_Db_Table_Abstract::getDefaultAdapter();
$sql = 'SELECT table_name FROM all_tables';
$stmt = $db->query($sql);
return $stmt->fetchAll();
所以很明显,在表名中添加双引号存在问题。这是PDO_OCI的错误还是我做错了什么

编辑:


我知道双引号的作用是什么,因为它在PostgreSQL中的作用是相同的,我在PostgreSQL中工作了很长时间。问题是,我不知道“所有表”并不是问题中提到的真实名称。此表的实名为ALL_TABLES,列的实名为table_name。因此,正确的答案是我的表名和列名错误,这与建议的副本无关,因为它的答案对我毫无帮助。

副本答案中指出的可能的副本;双引号导致区分大小写。您可能只需将
'all_tables'
'table_name'
字符串大写即可解决此问题。