Je suis actuellement confronté à un nouveau défi pour développer un site utilisant Microsoft Access comme base de données principale au lieu de mysql. Je n'ai jamais utilisé MS Access auparavant et j'aimerais savoir comment s'y prendre, j'ai consulté le site Web du W3C sur W3schools mais le code donne une erreur
Avertissement: odbc_connect () [function.odbc-connect]: erreur SQL: [Microsoft] [ODBC Driver Manager] Nom de la source de données introuvable et aucun pilote par défaut spécifié, état SQL IM002 dans SQLConnect dans C:\Users\NNALI\Desktop\root\test.php sur la ligne 2
et cette erreur
Avertissement: odbc_exec () s'attend à ce que le paramètre 1 soit une ressource, un booléen donné dans C:\Users\NNALI\Desktop\Breweries\root\test.php à la ligne 4
Je suis coincé et je ne sais pas quoi faire, j'apprécierais toute aide à ce sujet.
<?php
$conc = odbc_connect("northwind", "","");
$sql = "Select * From customers";
$rs = odbc_exec($conn, $sql);
?>
Ci-dessus est le code que j'ai utilisé
Si vous venez de commencer avec un nouveau projet, je vous suggère d'utiliser PDO à la place de l'ancienne approche odbc_exec()
. Voici un exemple simple:
<?php
$bits = 8 * PHP_INT_SIZE;
echo "(Info: This script is running as $bits-bit.)\r\n\r\n";
$connStr =
'odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};' .
'Dbq=C:\\Users\\Gord\\Desktop\\foo.accdb;';
$dbh = new PDO($connStr);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql =
"SELECT AgentName FROM Agents " .
"WHERE ID < ? AND AgentName <> ?";
$sth = $dbh->prepare($sql);
// query parameter value(s)
$params = array(
5,
'Homer'
);
$sth->execute($params);
while ($row = $sth->fetch()) {
echo $row['AgentName'] . "\r\n";
}
Le problème est une simple faute de frappe. Vous avez nommé votre variable "conc" à la ligne 2, mais avez ensuite référencé "conn" à la ligne 4.
<?php
$dbName = $_SERVER["DOCUMENT_ROOT"] . "products\products.mdb";
if (!file_exists($dbName)) {
die("Could not find database file.");
}
$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbName; Uid=; Pwd=;");
Une connexion réussie permettra aux commandes SQL d'être exécutées à partir de PHP pour lire ou écrire la base de données. Si, cependant, vous obtenez le message d'erreur "PDOException Impossible de trouver le pilote" alors il est probable que le PDO ODBC n'est pas installé. Utilisez la fonction phpinfo () pour vérifier votre installation pour les références à PDO.
Si une entrée pour PDO ODBC n'est pas présente, vous devrez vous assurer que votre installation inclut l'extension PDO et les pilotes ODBC. Pour ce faire sous Windows, décommentez l'extension de ligne = php_pdo_odbc.dll dans php.ini, redémarrez Apache, puis essayez de vous reconnecter à la base de données.
Avec le pilote installé, la sortie de phpinfo () devrait inclure des informations comme celle-ci: https://www.diigo.com/item/image/5kc39/hdse
Êtes-vous sûr que le connecteur ODBC est bien créé? sinon, vérifiez à nouveau l'étape " Créez une connexion ODBC ")
[~ # ~] modifier [~ # ~] : Connexion sans DSN depuis php.net
// Microsoft Access
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);
dans votre cas, cela pourrait être si votre nom de fichier est northwind et votre extension de fichier mdb:
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=northwind", "", "");