PHP ODBC - Access 2007:函数调用问题:odbc_columns

Posted

技术标签:

【中文标题】PHP ODBC - Access 2007:函数调用问题:odbc_columns【英文标题】:PHP ODBC - Access 2007: Function Call Problems: odbc_columns 【发布时间】:2010-02-11 17:41:47 【问题描述】:

我已经设法使用如下的 odbc_connect 来访问 2007 和 2003,我可以获取数据。但是当我尝试获取列名时,以下函数不适用于 access 2007,但适用于 access 2003 - 为什么?

if($type[1]=='mdb')

    $connection = odbc_connect("Driver=Microsoft Access Driver (*.mdb);Dbq=$mdbFilename", $username, $password);

else

    $connection = odbc_connect("Driver=Microsoft Access Driver (*.accdb);Dbq=$mdbFilename", $username, $password);


function get_columns($activity_file)

    global $connection;

    global $typee;

    $coulmn_array = array();

    $result = odbc_columns($connection, $typee, "", $activity_file, "%");

    while (odbc_fetch_row($result)) 

        $coulmn_array[] = odbc_result($result, "COLUMN_NAME");

    

    echo '<br>Exporting table '.$activity_file;

    return $coulmn_array;


我的意思是我可以得到数据和一切,只是这个功能似乎不起作用!

请帮忙!

更新

我在谷歌附近找到了this thread。

我可以确认这个人在说什么。提供 table_name 意味着这不起作用。但如果你不这样做,它会。这是不可接受的,因为要返回哪些列以及哪些表?我需要知道这一点!

【问题讨论】:

【参考方案1】:

这是一个长镜头,但与 Access 2007 相关的 ODBC 函数 SQLDescribeCol 和 SQLColAttributes 存在问题。odbc_columns 可能会使用这些函数。它在this KB article 中有描述。

【讨论】:

我希望这不是影响我的原因!我查看了我的 office 2007 安装,它显示了这个版本号:12.0.6425.1000。但是补丁的版本看起来像它:12.0.6300.5000 - 这意味着我希望已经超过了这个版本,因此有一个修复它。 @Abs:那时可能不是这样。作为健全性检查,您可能会查看 aceodbc.dll 的版本以确保它匹配,但听起来您拥有正确的版本。 感谢您让我知道这一点。分发这些脚本时需要注意的事项。

以上是关于PHP ODBC - Access 2007:函数调用问题:odbc_columns的主要内容,如果未能解决你的问题,请参考以下文章

使用 Oracle 的 ODBC 链接表登录 Access 2007

使用 ODBC 查询 Access 2007 多值字段

无法使用 MS Access 2007 访问 ODBC DB

在 MS Access 2007 中对 ODBC 表导入 sql 查询

“调用未定义函数 odbc_exec()”错误连接到 Linux PHP 服务器上的 Access 数据库

ODBC 调用失败 - 错误 3151