我已经管理过使用odbc_connect,如下所示访问2007和2003,我可以获取数据。但是当我尝试获取列名时,以下函数对于访问2007将不起作用,但是对于acccess 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意味着这不起作用。但如果你不这样做。这是不可接受的,因为返回的列和什么表?我需要知道这个!!
答案 0 :(得分:1)
这是一个很长的镜头,但是与Access 2007相关的ODBC函数SQLDescribeCol和SQLColAttributes存在问题。odbc_columns
可能会使用这些函数。它在this KB article中描述。