Como ligar o PHP à base de dados Microsoft Access
estou actualmente perante um novo desafio para desenvolver um site que utilize o Microsoft Access como base de dados primária em vez do mysql. Eu não usei MS Access antes e eu gostaria de guidiance sobre como fazer sobre isso, eu procurei o site w3c em w3schools mas o código dá erro
atenção: odbc_connect () [função.odbc-connect]: erro SQL: [Microsoft] [Gestor de controladores ODBC] o nome da fonte de dados não foi encontrado e não foi indicado nenhum controlador por omissão, o estado SQL IM002 em SQLConnect in C:\Users\NNALI\Desktop\root\test.php na linha 2
e este erro
Estou preso e não sei o que fazer, agradecia toda a ajuda.atenção: o odbc_exec () espera que o parâmetro 1 seja o recurso, dado em booleano C:\Users\NNALI\Desktop\Breweries\root\test.php na Linha 4
<?php
$conc = odbc_connect("northwind", "","");
$sql = "Select * From customers";
$rs = odbc_exec($conn, $sql);
?>
acima está o código que usei
4 answers
Se está apenas a começar um novo projecto, sugiro que use DOP em vez da abordagem antiga odbc_exec()
. Aqui está um exemplo simples:
<?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";
}
O problema é um erro de digitação simples. Deu o nome à sua variável "conc" na linha 2, mas depois referenciou "conn" na Linha 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=;");
Uma ligação bem-sucedida permitirá que os comandos SQL sejam executados a partir do PHP para ler ou escrever a base de dados. Se, no entanto, você receber a mensagem de erro "PDOException não poderia encontrar driver", então é provável que o driver ODBC DOP não está instalado. Utilize a função phpinfo() para verificar se a sua instalação tem referências à DOP.
Se não estiver presente uma entrada para a DOP ODBC, terá de garantir que a sua instalação inclui a extensão da DOP e os condutores da ODBC. Para fazê-lo nas janelas, descomment the line extension=php_pdo_odbc.dll em php.ini, reinicie o Apache, e depois tente se conectar à base de dados novamente.
Com o controlador instalado, o resultado do phpinfo() deverá incluir informação como esta: https://www.diigo.com/item/image/5kc39/hdse
EDITAR: Conexão sem DSN de php.net
/ / Microsoft Access
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);
No seu caso pode ser se o seu nome de ficheiro for northwind e a sua extensão de ficheiro mdb:
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=northwind", "", "");