odbc_data_source()
(PHP 4 >= 4.3.0, PHP 5, PHP 7)
Returns information about a current connection
说明
odbc_data_source(resource $connection_id,int $fetch_type): array
This function will return the list of available DSN(after calling it several times).
参数
- $connection_id
ODBC 连接标识符,详见odbc_connect()。
- $fetch_type
The$fetch_typecan be one of two constant types:
SQL_FETCH_FIRST
,SQL_FETCH_NEXT
. UseSQL_FETCH_FIRST
the first time this function is called, thereafter use theSQL_FETCH_NEXT
.
返回值
Returns FALSE
on error, and an array upon success.
// Example usage: // Connect to a ODBC database that exists on your system $link = odbc_connect("some_dsn_name", "user", "password") or die(odbc_errormsg() ); $result = @odbc_data_source( $link, SQL_FETCH_FIRST ); while($result) { echo "DSN: " . $result['server'] . " - " . $result['description'] . "<br>\n"; $result = @odbc_data_source( $link, SQL_FETCH_NEXT ); } odbc_close($link);
Thank you Angelo for point out the code. Though the function doesn't really do what it is supposed to. It returns the entire list of ODBC DSNs. If you really are looking to get the server type based on just the ODBC, username and password in an environment where the application needs to be aware of different types of databases, use the following code: $link2 = odbc_connect($dsn , $DBUser, $DBPwd ) or die(odbc_errormsg() ); $result = @odbc_data_source( $link2, SQL_FETCH_FIRST ); while($result) { if (strtolower($dsn) == strtolower($result['server'])) { echo $result['description'] . "<br>\n"; break; } else $result = @odbc_data_source( $link2, SQL_FETCH_NEXT ); } odbc_close($link2); // Hope it saves your precious time