【发布时间】:2018-06-14 13:46:26
【问题描述】:
我可以像这样用 Firebird 驱动程序连接一个 .eft 数据库文件:
$pdo = new PDO("odbc:DRIVER={Firebird/InterBase(r) driver}; dbname=$dbName;", $user, $pass);
当我尝试做一个简单的查询时
$stmt = pdo()->exec("select 1+1 as somma");
结果是:
致命错误:带有消息的未捕获异常“PDOException” 'SQLSTATE [HY000]:一般错误:-104 [ODBC Firebird Driver][Firebird]Dynamic SQL Error SQL error code = -104 Unexpected 命令行结束 - 第 1 行,第 15 列 (SQLExecDirect[-104] at ext\pdo_odbc\odbc_driver.c:247)' 在 D:\PROGRAMMAZIONE\ricoplast\com\db.php:25
有人可以帮助我吗?
PS:当我对不同的 ODBC 驱动程序执行相同操作时:$pdo = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; ... 查询有效。
【问题讨论】:
-
en.wikipedia.org/wiki/Select_%28SQL%29 - "SQL SELECT 语句返回来自一个或多个表的记录结果集"
-
SQL 标准和 Firebird SQL 语法都需要在 select 中使用
from子句。一些数据库系统不需要这个,但 Firebird 需要。 -
@MarkRotteveel 好吧,至少按照 SQL'99 标准,它应该是
select * from (values(1+1)),但我不知道有多少真实的数据库会支持它。可悲的是,Firebird 两者都没有(它可以帮助在查询中创建临时伪表) -
@Arioch'The Sure,但你仍然有一个
from-clause..
标签: php sql database pdo firebird