Cette section traite de questions relatives aux relations entre PHP et les bases de données. Oui, PHP peut accéder virtuellement à n'importe quelle base de données disponible aujourd'hui.
Sur les machines UNIX, vous pouvez utiliser PDO_ODBC ou Unified ODBC API.
Sur les machines Windows, vous pouvez également utiliser PDO_SQLSRV ou SQLSRV.
Jetez aussi un oeil à la réponse à la question suivante.
Oui. Vous avez déjà tous les outils nécessaires si vous utilisez uniquement Windows 9x/Me, ou NT/2000, et que vous utilisez ODBC avec les pilotes ODBC pour Microsoft Access.
Si vous utilisez PHP sur une machine Unix et que vous voulez vous connecter à une base Access sur une machine Windows, vous aurez besoin des pilotes ODBC Unix. » OpenLink Software fournit des pilotes ODBC pour Unix qui peuvent le faire.
Une autre solution consiste à utiliser un serveur SQL qui a des pilotes ODBC Windows et l'utiliser pour stocker les données, que vous pouvez utiliser à partir de Microsoft Access (en utilisant ODBC) et PHP (en utilisant les pilotes inclus), ou bien utiliser un format de fichier intermédiaire que Access et PHP peuvent traiter tous les deux, comme des fichier bruts ou des bases de données dBase. À ce sujet, Tim Hayes de Openlink software écrit :
Utiliser une autre base de données comme intermédiaire n'est pas une bonne idée lorsque vous pouvez utiliser ODBC de PHP directement vers vos bases de données - par exemple avec les pilotes Openlink. Si vous avez besoin d'un format de fichier intermédiaire, Openlink a publié Virtuoso (un moteur de base de données virtuel) pour NT, Linux et d'autres plates-formes Unix. Visitez notre » site pour un téléchargement gratuit.
Une solution qui a fait ses preuves est d'utiliser MySQL et ses pilotes ODBC sous Windows et de synchroniser les bases de données. Steve Lawrence écrit :
Trucs et astuces :
Il y a 3 extensions MySQL, tel que décrit dans la section Choisir une API MySQL. L'ancienne API ne doit plus être utilisée, elle est devenue obsolète depuis PHP 5.5.0 et a été supprimé de PECL depuis PHP 7.0.0. Vous êtes vivement encouragé à écrire vos nouvelles lignes de code en utilisant l'extension mysqli ou PDO_MySQL.
Les scripts de migration ne sont pas disponibles actuellement, bien que l'API mysqli contient à la fois une API procédurale et orientée objet, dont la version procédurale est très similaire à ext/mysql.
Il n'est pas possible de mixer les extensions. Aussi, par exemple, le fait de passer une connexion mysqli à PDO_MySQL ou ext/mysql ne fonctionnera pas.
Vous essayez d'utiliser un identifiant de résultat qui vaut 0. Le 0 indique que votre requête a échoué pour une quelconque raison. Vous devez alors chercher les erreurs après avoir exécuté une requête et avant même de vouloir traiter le résultat. Une façon propre de le faire est de coder comme ceci :
<?php
$result = mysql_query("SELECT * FROM tables_priv");
if (!$result) {
echo mysql_error();
exit;
}
?>
<?php
$result = mysql_query("SELECT * FROM tables_priv")
or die("Bad query: " . mysql_error());
?>