Can';t使用php和odbc连接到HyperFileSQL

Can';t使用php和odbc连接到HyperFileSQL,php,database,iodbc,hyperfilesql,Php,Database,Iodbc,Hyperfilesql,我有一个带有HyperFileSQL的数据库,我想通过php访问这个数据库。 如果我使用IODBC连接IODBC.ini,它会工作!!! 但是,当我想从php连接到odbc时,我的回报是: SQLSTATE[0]SQLDriverConnect:0[unixODBC]I 当我通过以下线路从iodbc连接到数据库时: iodbctest DSN=DACHFSQL 它起作用了 这是我的代码:` try{ $conn = new PDO("odbc:Driver={HFSQL};DSN=

我有一个带有HyperFileSQL的数据库,我想通过php访问这个数据库。 如果我使用IODBC连接IODBC.ini,它会工作!!! 但是,当我想从php连接到odbc时,我的回报是:

SQLSTATE[0]SQLDriverConnect:0[unixODBC]I

当我通过以下线路从iodbc连接到数据库时:

iodbctest DSN=DACHFSQL  
它起作用了

这是我的代码:`

try{
    $conn = new PDO("odbc:Driver={HFSQL};DSN={DACHFSQL};Server=$db_server_name;Port=$port;Database=$database;",$user,$password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "SELECT * FROM contacts";
    $res_select = $conn->prepare($sql);
    $res_select->execute();
} catch (PDOException $e) {
echo 'Échec lors de la connexion : ' . $e->getMessage();}
我不知道为什么我不能连接。。。求救

此代码适用于我(WD 21)


HTH

您需要使用iodbc支持(而不是odbc)编译php。

您所说的“WD 21”和“HTH”(是签名吗?)是什么意思?WinDev 21/希望这有帮助!有什么区别?我似乎碰到了一堵墙,我可以从终端上的iodbctest连接,但我不能用php连接。你有没有让它工作过?我发现根本问题是php在后台使用unixODBC,而HFSQL是为iODBC设置的。
$hf_hostname = "localhost";
$hf_port = "4900";
$hf_database = "MyDb";
$hf_user = "admin";
$hf_password = "";
$hf_dsn = sprintf("odbc:DRIVER={HFSQL};Server Name=%s;Server Port=%s;Database=%s;UID=%s;PWD=%s;", $hf_hostname, $hf_port, $hf_database, $hf_user, $hf_password);
$hf_dbh = new PDO($hf_dsn);