使用ODBC Firebird驱动程序的PHP中没有FROM子句的SQL SELECT

时间:2018-06-14 13:46:26

标签: php sql database pdo firebird

我可以使用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   驱动程序] [Firebird]动态SQL错误SQL错误代码= -104意外   命令行第1行第15列(SQLExecDirect [-104] at   分机\ PDO_ODBC \ odbc_driver.c:247)'在   d:\ PROGRAMMAZIONE \ ricoplast \ COM \ db.php中:25

有人可以帮助我吗?

PS:当我使用不同的ODBC驱动程序执行相同操作时:
$pdo = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; ...查询有效。

2 个答案:

答案 0 :(得分:3)

问题在于

select 1+1 as somma

不是有效的Firebird查询,您需要有一个表从哪里选择。尝试

select 1+1 as somma from rdb$database

Firebird中的rdb$database表与Oracle中的dual类似。

答案 1 :(得分:0)

谢谢。我找到了问题所在。当我必须执行查询时,我必须在"之间加上字段,以便db可以识别列。

另一个问题: 我如何绕过我的数据库名称空间。我必须使用我客户的数据库名称。似乎像name something.eft,但如果我使用那个名字firebird说他找不到数据库

SQLDriverConnect: -902 [ODBC Firebird Driver]File Database is not found'

有人能再帮我一次吗?