我可以像这样用火鸟驱动连接一个.eft数据库文件:
$pdo = new PDO("odbc:DRIVER={Firebird/InterBase(r) driver}; dbname=$dbName;", $user, $pass);
当我尝试执行一个简单的查询时
$stmt = pdo()->exec("select 1+1 as somma");
结果是:
致命错误:未捕获异常'PDOException‘,在D:\PROGRAMMAZIONE\ricoplast\com\db.php:25中显示消息'SQLSTATEHY000: General error:-104 ODBC Firebird DriverDynamic SQL Error SQL error code = -104命令行1,第15列意外结束(SQLExecDirect-104 at ext\pdo_odbc\odbc_driver.c:247)’
有人能帮我吗?
PS:当我用不同的ODBC驱动程序做同样的事情时:
$pdo = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; ...
查询起作用了。
发布于 2018-06-14 21:55:03
问题是
select 1+1 as somma
不是有效的Firebird查询,您需要有一个从中选择的表。试一试
select 1+1 as somma from rdb$database
Firebird中的rdb$database
表类似于Oracle中的dual
。
发布于 2018-06-21 04:53:08
谢谢大家。我找到了问题所在。当我必须执行查询时,我必须将字段放在"
之间,这样db才能识别列。
另一个问题:如何在我的数据库名称上绕过空格。我必须使用我的客户的名字db。它看起来像name something.eft
,但是如果我使用这个名字,火鸟就会说他找不到数据库
SQLDriverConnect: -902 [ODBC Firebird Driver]File Database is not found'
有谁可以改天再帮我吗?
https://stackoverflow.com/questions/50859054
复制相似问题