В настоящее время я столкнулся с новой проблемой для разработки сайта с использованием Microsoft Access в качестве первичной базы данных вместо mysql. Я раньше не использовал MS Access, и мне хотелось бы, чтобы это было сделано, я просмотрел веб-сайт w3c на W3schools, но код дает ошибку
Предупреждение: odbc_connect () [function.odbc-connect]: ошибка SQL: [Microsoft] [диспетчер драйверов ODBC] Имя источника данных не найдено и не указан драйвер по умолчанию, состояние SQL IM002 в SQLConnect в C: \ Users \ NNALI \ Desktop \ root \ test.php в строке 2
- подключение к базе данных quickbooks через odbc с php?
- Я получаю ошибки «String data, right truncation» из PHP с использованием ODBC и подключение к экземпляру Microsoft SQL Server 2008R2
- Как установить UTF8 на PHP при подключении к ACCESS 2007 (ODBC)
- Правильный способ избежать ввода данных перед переходом на ODBC
- Проблема кодирования символов с PDO_ODBC
и эта ошибка
Предупреждение: odbc_exec () ожидает, что параметр 1 будет ресурсом, логическим значением в C: \ Users \ NNALI \ Desktop \ Breweries \ root \ test.php в строке 4
Я застрял и не знаю, что делать, я был бы признателен за всю помощь в этом.
<?php $conc = odbc_connect("northwind", "",""); $sql = "Select * From customers"; $rs = odbc_exec($conn, $sql); ?>
Выше приведен код, который я использовал
Если вы только начинаете с нового проекта, я бы предложил использовать PDO вместо старого метода odbc_exec()
. Вот простой пример:
<?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"; }
<?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=;");
Успешное соединение позволит выполнять команды SQL из PHP для чтения или записи базы данных. Если, однако, вы получите сообщение об ошибке «PDOException Не удалось найти драйвер», тогда вполне вероятно, что драйвер PDO ODBC не установлен. Используйте функцию phpinfo (), чтобы проверить установку для ссылок на PDO.
Если запись для PDO ODBC отсутствует, вам необходимо убедиться, что ваша установка включает в себя расширение PDO и драйверы ODBC. Чтобы сделать это в Windows, раскомментируйте расширение строки = php_pdo_odbc.dll в php.ini, перезапустите Apache и попробуйте снова подключиться к базе данных.
С установленным драйвером вывод из phpinfo () должен содержать следующую информацию: https://www.diigo.com/item/image/5kc39/hdse
Вы уверены, что разъем odbc хорошо создан? если не повторить шаг « Создать соединение ODBC »
EDIT : подключение без DSN от php.net
// Microsoft Access
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);
в вашем случае это может быть, если ваше имя файла – северный ветер и расширение файла mdb:
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=northwind", "", "");
Проблема заключается в простой опечатке. Вы указали свою переменную «conc» в строке 2, но затем указали «conn» в строке 4.