Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cajau

[Resolvido] PHP + Access (INSERT, UPDATE, DELETE)

Recommended Posts

Salve, salve!!

 

Estou com um problema, e milhões de pessoas no mundo inteiro parece passar por isso também, porque não encontrei em lugar nenhum, após 1 semana inteira de pesquisas, como resolver isso.

 

Eu consigo conectar o banco de dados Acces com o PHP, mas INSERT, UPDATE e DELETE não funciona.

Vou deixar o código abaixo e pedir a gentileza de uma boa alma pra me ajudar a resolver isso!!

 

conexao.php

<?

$dbq = str_replace("/", "\\", $_SERVER["DOCUMENT_ROOT"]) . "pasta\\banco.mdb";
if (!file_exists($dbq)) { echo "O Banco de dados não existe! $dbq"; }

$con = odbc_connect("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbq", "ADODB.Connection", "", "SQL_CUR_USE_ODBC");

?>

$sql = odbc_exec($con,"select * from tab1 where campo1 = 'algumacoisa'");

Até aí tudo bem

 

O que não funciona vem abaixo: UPDATE, INSERT e DELETE

 

$sql = odbc_exec($con,"UPDATE tab1 set data='$data' where camp1='$camp1'");

$sql = odbc_exec($con,"INSERT INTO tab1 (camp1, camp2) VALUES('$camp1', '$camp2'");

$datamenos = time() - 21600; // 6 horas
$sql = odbc_exec($con,"DELETE from tab1 where data < '$datamenos'");

Preciso muito resolver isso!

Antes que alguém me aconselhe a usar mysql, eu programo em ASP, mas precisei de um sistema de socket para conexão a um servidor e não consegui, somente com PHP consegui através do FSOCKOPEN, então por isso quero usar essa parte do PHP pra fazer o que eu preciso e gravar num banco access, que é utilizado em meu site.

Senão terei que reprogramar o site inteiro.

 

Por favor, espero que vcs me ajudem!!

 

Felicidades!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu consigo conectar o banco de dados Acces com o PHP, mas INSERT, UPDATE e DELETE não funciona.

 

Você já verificou se você tem permissão de gravação nesse arquivo ??

 

Para ter certeza que é um problema de permissão de gravação basta fazer um SELECT, se você tiver algum resultado então definitivamente é falta de permissão de gravação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual erro que dá ?

 

Não dá erro nenhum... somente não executa os comandos.

Já fiz debug do tipo:

 

echo "
Passou por aqui";

Fiz isso em todo o código, pra ver onde estava parando... mas o script executa por completo.

Ou seja, somente lê o banco, mas não escreve no banco, nem deleta.

O banco, claro, tem permissão de escrita no servidor.

 

Para ter certeza que é um problema de permissão de gravação basta fazer um SELECT, se você tiver algum resultado então definitivamente é falta de permissão de gravação.

 

Consigo fazer SELECT sim

$sql = odbc_exec($con,"select * from tab1 where campo1 = 'algumacoisa'");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse banco já é utilizado no meu site há muito tempo.

O ASP executa todos esses comandos. Somente o PHP que não.

Acredito que o problema não seja falta de permissão de escrita

Deve estar faltando alguma coisa aí :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que o problema não seja falta de permissão de escrita

Deve estar faltando alguma coisa aí :(

 

Humm, teste o seguinte:

 

odbc_exec($con,"UPDATE tab1 set data='$data' where camp1='$camp1'");

if ( odbc_error() ){
echo odbc_errormsg( $con );
} else 'Ok';

 

Coloque aqui a saída.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Acredito que o problema não seja falta de permissão de escrita

Deve estar faltando alguma coisa aí Imagem Postada

 

Humm, teste o seguinte:

 

odbc_exec($con,"UPDATE tab1 set data='$data' where camp1='$camp1'");

if ( odbc_error() ){
echo odbc_errormsg( $con );
} else 'Ok';

 

Coloque aqui a saída.

 

Apresentou o seguinte erro na página inteira:

 

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

 

$data = time();

 

Quando tento gravar a data no banco...

Eliminei a gravação da data, só pra testar.

O erro parou, mas continua não gravando no banco!

Compartilhar este post


Link para o post
Compartilhar em outros sites

CONSEGUIIIIII!!!!

 

Gente, o problema tah dando na hora de salvar as horas e a data no banco!!

Eu eliminei então a gravação das horas e da data e acabou o problema.

 

Alguém sabe como gravar isso sem dar erro?

 

Eu estava fazendo assim:

 

$data = time();

$sql = odbc_exec($con,"UPDATE tab1 set data='$data' where camp1='algumacoisa'");

No Banco o campo Data/Hora está como Data Geral

 

Só falta isso pra resolver o problema todo Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

quando você dá um echo time() aparece o que ? eu nao lembro

 

depende do que sair você pode fazer assim:

 

$data = time();$sql = odbc_exec($con,"UPDATE tab1 set data = convert(datetim,'$data',103) where camp1='algumacoisa'");

Compartilhar este post


Link para o post
Compartilhar em outros sites

$data = time();

$sql = odbc_exec($con,"UPDATE tab1 set data='$data' where camp1='algumacoisa'");

No Banco o campo Data/Hora está como Data Geral

 

Tenta assim:

 

$data = date( 'Y-m-d H:i:s' );
$sql = odbc_exec($con,"UPDATE tab1 set data='$data' where camp1='algumacoisa'");

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

$data = time();

$sql = odbc_exec($con,"UPDATE tab1 set data='$data' where camp1='algumacoisa'");

No Banco o campo Data/Hora está como Data Geral

 

Tenta assim:

 

$data = date( 'Y-m-d H:i:s' );
$sql = odbc_exec($con,"UPDATE tab1 set data='$data' where camp1='algumacoisa'");

 

Cara, vcs são muito bons!!

Parabéns pela competência!

 

Resolvido o problema :)

 

Aproveitando, deixa aí então essa dica pra quem precisa usar banco de dados Access com PHP.

Eu fiquei 1 semana inteira pesquisando, e só encontrei tópicos no Brasil e no exterior apenas com dúvidas, e nenhuma solução!

 

Pra dizer a verdade eu só consigo resolver meus problemas aqui neste Fórum, não me desfazendo dos demais, claro!

 

Mais uma vez parabéns pela competência de vocês!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.