Esta seção possui questões comuns sobre a relação entre o PHP e bases de dados. Sim, o PHP pode acessar virtualmente qualquer base de dados disponível atualmente.
Em máquinas Unix você pode utilizar o PDO_ODBC ou a API ODBC Unificada.
Em máquinas Windows você também pode utilizar PDO_SQLSRV ou SQLSRV.
Veja também a resposta da questão seguinte.
Sim. Você já possui todas as ferramentas que precisa se estiver rodando em ambiente Windows 9x/Me, ou NT/2000, onde você pode usar o driver ODBC e os drivers ODBC para bases de dados Microsoft Access.
Se você estiver rodando PHP em uma box Unix e quiser conversar com o Microsoft Access em uma box Windows será necessário instalar os drivers ODBC para Unix. » OpenLink Software possui drivers para sistemas baseados em Unix que podem fazer isto.
Outra alternativa é usar um servidor SQL que possua drivers Windows ODBC e utilizá-los para armazenar os dados, que você pode então acessar através do Microsoft Access (usando ODBC) e do PHP (usando os drivers já existentes), ou usando um formato de arquivo intermediário que o Microsoft Access e o PHP consigam entender, como arquivos comuns ou bases de dados dBase. Neste ponto Tim Hayes, da OpenLink Software, escreve:
Usar outra base de dados como intermediária não é uma boa ideia, quando você pode usar o ODBC do PHP diretamente para a base de dados - por exemplo, com os drivers fornecidos pela OpenLink. Se você precisar utilizar um formato de arquivo intermediário, a OpenLink lançou o Virtuoso (uma engine de base de dados virtual) para NT, Linux e outras plataformas Unix. Por favor visite » nossa página para um download gratuito.
Uma opção que se mostrou funcional é utilizar MySQL e seus drivers MyODBC no Windows e sincronizar as bases de dados. Steve Lawrence disse:
Dicas e Truques:
Existem três extensões MySQL, como descrito na seção Escolhendo uma API MySQL. A antiga API não deve ser utlizada, pois está obsoleta desde o PHP 5.5.0 e foi movida para o PECL a partir do PHP 7.0.0. É fortemente recomendado escrever novos códigos utilizando mysqli ou PDO_MySQL.
Scripts de migração não estão disponíveis neste momento, porém a API mysqli possui tanto uma API procedural quanto uma API orientada a objetos, sendo que a versão procedural é similar à ext/mysql.
Não é possível misturar as extensões. Então, por exemplo, passar uma conexão mysqli para PDO_MySQL ou ext/mysql não vai funcionar.
Você está tentando utilizar um result identifier que tem valor 0. O valor 0 indica que sua consulta falhou por algum motivo. Você deverá verificar erros depois de submeter uma consulta e antes de tentar utilizar o result identifier retornado. A forma correta de fazer isto é semelhante à que segue:
<?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());
?>