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

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

Estou preso e não sei o que fazer, agradecia toda a ajuda.

<?php
    $conc = odbc_connect("northwind", "","");
    $sql  = "Select * From customers";
    $rs   = odbc_exec($conn, $sql);
?>

acima está o código que usei

Author: Uwe Keim, 2013-11-06

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";
}
 7
Author: Gord Thompson, 2013-11-06 09:46:19

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.

 4
Author: Joel Ginsberg, 2016-11-13 14:53:39
<?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

http://i.stack.imgur.com/Zwp2W.png

 3
Author: Aman Maurya, 2016-07-04 08:20:26
Tens a certeza que o conector odbc foi bem criado ? se não verificar o Passo " crie uma ligação ODBC " novamente

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", "", "");
 2
Author: MSR, 2013-11-06 08:52:33