odbc_data_source

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

odbc_data_sourceRetourne des informations sur les DSNs disponibles

Description

odbc_data_source(resource $odbc, int $fetch_type): array|false

Retourne une liste de DSN disponibles (après l'avoir appelée plusieurs fois).

Liste de paramètres

odbc

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

fetch_type

Le paramètre connection_id est une connexion ODBC valide. Le paramètre fetch_type peut être l'une des deux constantes suivantes : SQL_FETCH_FIRST ou SQL_FETCH_NEXT. Utilisez SQL_FETCH_FIRST la première fois que la fonction est appelée, puis SQL_FETCH_NEXT.

Valeurs de retour

Retourne false si une erreur survient, un tableau en cas de succès, et null après avoir récupéré le dernier DSN disponible.

Exemples

Exemple #1 Lister les DSNs disponibles

<?php
$conn
= odbc_connect('dsn', 'user', 'pass');
$dsn_info = odbc_data_source($conn, SQL_FETCH_FIRST);
while (
$dsn_info) {
print_r($dsn_info);
$dsn_info = odbc_data_source($conn, SQL_FETCH_NEXT);
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [server] => dsn
    [description] => ODBC Driver 17 for SQL Server
)
Array
(
    [server] => other_dsn
    [description] => Microsoft Access Driver (*.mdb, *.accdb)
)
add a note add a note

User Contributed Notes 2 notes

up
1
angelo [at] spaceblue [dot] com
20 years ago
// 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);
up
-1
critmas at hotmail dot com
19 years ago
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
To Top