odbc_connect

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_connectConnexion à une source

Description

odbc_connect(
    string $dsn,
    ?string $user = null,
    ?string $password = null,
    int $cursor_option = SQL_CUR_USE_DRIVER
): Odbc\Connection|false

L'identifiant de connexion retourné par cette fonction est nécessaire pour toutes les autres fonctions ODBC. Vous pouvez avoir de multiples connexions en même temps.

Avec certains pilotes ODBC, l'exécution de procédures enregistrées complexes peut produire l'erreur suivante : "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it", ce qui signifie : "Impossible de créer un pointeur de résultat dans une procédure enregistrée qui est réduite à une simple sélection (SELECT)". Utiliser l'option SQL_CUR_USE_ODBC permet d'éviter cette erreur. De plus, certains pilotes ne supportent pas le paramètre optionnel de numéro de ligne dans odbc_fetch_row(). SQL_CUR_USE_ODBC peut aussi permettre de résoudre ces problèmes.

Liste de paramètres

dsn

Le nom source de la base de données (DSN), pour la connexion.

user

Le nom d'utilisateur. Ce paramètre est ignoré si dsn contient uid. Pour une connexion sans spécifier un user, utiliser null.

password

Le mot de passe. Ce paramètre est ignoré si dsn contient pwd. Pour une connexion sans spécifier un password, utiliser null.

cursor_option

Fixe le type de pointeur de résultat utilisé pour cette connexion. Ce paramètre n'est généralement pas nécessaire, mais il peut être utile pour contourner certains problèmes ODBC.

Les constantes suivantes sont définies comme types de pointeur :

  • SQL_CUR_USE_IF_NEEDED
  • SQL_CUR_USE_ODBC
  • SQL_CUR_USE_DRIVER

Valeurs de retour

Retourne une connexion ODBC, ou false si une erreur survient.

Historique

Version Description
8.4.0 odbc attend désormais une instance de Odbc\Connection; auparavant, un resource était attendu.
8.4.0 Cette fonction retourne désormais une instance de Odbc\Connection; auparavant, un resource était retourné.
8.4.0 user et password peuvent désormais être nuls, ils sont également optionnels et valent par défaut null.
8.4.0 Auparavant, l'utilisation d'une chaîne vide pour password n'incluait pas pwd dans la chaîne de connexion générée pour dsn. Désormais, pwd est inclus dans la chaîne de connexion, avec pour valeur une chaîne vide. Pour rétablir le comportement précédent, password peut être défini sur null.
8.4.0 Auparavant, si dsn contenait uid ou pwd, alors les paramètres user et password étaient ignorés. Désormais, user est uniquement ignoré si dsn contient uid, et password est uniquement ignoré si dsn contient pwd.

Exemples

Exemple #1 Connexion sans DSN

<?php
// Microsoft SQL Server utilise le pilote SQL Native Client 10.0 ODBC Driver :
// il permet les connexions à SQL 7, 2000, 2005 et 2008
$connection = odbc_connect("Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;", $user, $password);

// Microsoft Access
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);

// Microsoft Excel
$excelFile = realpath('C:/ExcelData.xls');
$excelDir = dirname($excelFile);
$connection = odbc_connect("Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=$excelFile;DefaultDir=$excelDir" , '', '');
?>

Voir aussi

  • Pour les connexions persistantes : odbc_pconnect() - Ouvre une connexion persistante à une source de données