odbc_data_source() - Listing All DSN Entries

Q

How To List All DSN Entries on Your Local Machine using odbc_data_source()?

✍: Guest

A

If you are interested to know what DSN entries are available on your local machine, you can use odbc_data_source($con, SQL_FETCH_FIRST) and odbc_data_source($con, SQL_FETCH_NEXT) in a loop to list all DSN entries defined on your local machine. The tutorial script below shows a good example:

<?php
  $con = odbc_connect('FYI_SQL_SERVER','sa','FYIcenter');
  if (!$con) {
    print("There is a problem with the connection.\n");
  } else {
    print("The ODBC connection object is ready.\n");
    $list = odbc_data_source($con, SQL_FETCH_FIRST);
    while ($list) {
       foreach ($list as $key => $value) {
          print($key . " = " . $value . "\n");
       }
       $list = odbc_data_source($con, SQL_FETCH_NEXT);
    }
    odbc_close($con); 
  }
?>

If you run this script, you will get something like this:

The ODBC connection object is ready.
server = MS Access Database
description = Microsoft Access Driver (*.mdb)
server = dBASE Files
description = Microsoft dBase Driver (*.dbf)
server = Excel Files
description = Microsoft Excel Driver (*.xls)
server = FYI_SQL_SERVER
description = SQL Server

Warning: odbc_data_source(): SQL error: [Microsoft]
[ODBC SQL Server Driver][SQLServer]Changed database context
to 'FyiCenterData'., SQL state 01000 in SQLDataSources in 
C:\test\fyi_center.php on line 12

The error message seems to be very strange. But the result is correct.

 

odbc_exec() - Executing SQL Statements

odbc_connect() - Connecting to a SQL Server through an ODBC DSN

SQL Server FAQs - PHP ODBC Functions - Connection and Query Execution

⇑⇑ SQL Server Connection Tutorials

2023-12-31, 1212🔥, 0💬