Ir para conteúdo

POWERED BY:

Arquivado

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

Inside

INSERT com SELECT, Access

Recommended Posts

Caros amigos,

 

 

eu tenho mais uma dúvida. Achei este código de conexão do PHP para Access. E funciona normal.

 

$db = 'e:\\home\\valribeira\\dados\\galeria2.mdb';
$conn = new COM ('ADODB.Connection');
$conn->Open ("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db");
$sql = 'SELECT Top 1 id FROM fotos ORDER BY id ASC';
$rs = $conn->Execute($sql);

 

Agora como faço para passar a consulta SELECT para uma SESSION ou VARIÁVEL e depois gravar em outro Banco de dados Access ou nome mesmo Banco numa tabela diferente?

 

 

Obriugado pela atenção recebida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Inside, a tua nova dúvida, foi dividida em um novo tópico, por fugir do assunto tema do primeiro tópico.

 

Sugiro fortemente que leia, para facilitar a sua participação no fórum:

http://forum.imasters.com.br/index.php?/topic/375800-orientacoes-para-uma-boa-participacao/

 

Prefere que mova esse tópico para 'Bancos de Dados'?

Não tenho certeza se Access suporta subquery.. uma subquery de SELECT num INSERT, viria a calhar perfeitamente para resolver essa questão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$db = 'e:\\home\\valribeira\\dados\\galeria2.mdb';
$conn = new COM ('ADODB.Connection');
$conn->Open ("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db");
$sql = 'SELECT Top 1 id FROM fotos ORDER BY id ASC';
$rs = $conn->Execute($sql);

$cols = $rs->Fields->Count();
$data = array();

$row = 0;
while(!$rs->EOF) {
    $data[$row] = array();
    for($i = 0; $i < $cols; $i++) $data[$row][] = $rs->Fields($i)->value;
    $row++;
    $rs->MoveNext();
}

var_dump($data);

Sugiro que leia a documentação do objeto COM para entender os métodos que serão criados e como trabalhar com eles (isso está fora do âmbito PHP).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caros amigos,

 

o que eu quero aprender é como listar dados de um Banco Access no PHP. Achei esse código mas não funciona:

 

Qual seria o código ideial?

 

<?php
$db = 'e:\\home\\cliente\\dados\\galeria.mdb';

$conn = new COM('ADODB.Connection') or exit('Cannot start ADO.');

// Two ways to connect. Choose one.
$conn->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=$db") or exit('Cannot open with Jet.');

$sql = 'SELECT id, foto_p, visualizacoes
	FROM fotos
	ORDER BY id';
$rs = $conn->Execute($sql);

while (!$rs->EOF) {
?>

<?php echo $rs->Fields['id']->Value ?> - 
<?php echo $rs->Fields['foto_p']->Value ?> - 
<?php echo $rs->Fields['visualizacoes']->Value ?>

<?php
$rs->MoveNext()

$rs->Close();
$conn->Close();

$rs = null;
$conn = null;
?>

Apresenta o erro: PHP Parse error: syntax error, unexpected T_VARIABLE in E:\home\cliente\web\upload\teste.php on line 34

 

Uma outra pergunta. Etendi que o "echo" faz o print na tela, mas como poço colocar o dado que eu quero puxar do banco numa variável?

 

 

Obrigado pela atenção recebida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilizou o código que te passei para ver a saída que retorna???

 

 

$data contém um array bidimensional composto por $data[numero_da_linha][indice_da_coluna].

 

Se queremos pegar a terceira coluna da sexta linha (lembrando que os valores se iniciam em zero) basta fazer:

echo $data[5][2];

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que eu quero aprender é como listar dados de um Banco Access no PHP.

PDO ou ODBC

 

<?php

$db = new PDO('odbc:DRIVER={{Microsoft Access Driver (*.mdb)}; DBQ=$db');
$query = <<<sql
SELECT 
    id,
    foto_p,
    visualizacoes
FROM
    fotos
ORDER BY
    id
sql;

$rs = $db->query($query);
$rs = $rs->fetchAll(PDO::FETCH_ASSOC);
$rows = sizeof($rs);

for($i = 0; $i < $rows; $i++) { 
    foreach($rs[$i] as $col=>$val) echo "{$col}:{$val}, ";
    echo "<br />\n";
}
?>

 

<?php

$db = odbc_connect("DRIVER={{Microsoft Access Driver (*.mdb)}; DBQ=$db");
$query = <<<sql
SELECT 
    id,
    foto_p,
    visualizacoes
FROM
    fotos
ORDER BY
    id
sql;

$rs = odbc_execute($db,$query);

while(false !== ($row = odbc_fetch_array($rs))) {
    foreach($row as $col=>$value) echo "{$col}:{$val}";
    echo "<br />";
}

?>

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.