Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    PHP e Database Microsoft Access

    Buongiorno,
    mi trovo a dover gestire un database Access attraverso il PHP.
    Fin qui nessun problema .... sono riuscito a fare le query tranquillamente.

    codice:
    $mdbFilename = "C:\dati\Database1.accdb";
    
    $dbh = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=$mdbFilename; 
    
    
    $sql = 'SELECT * FROM table1';
    $result = $dbh->query($sql);
    while( $row = $result->fetch(PDO::FETCH_ASSOC) ) {
      $test[] = $row;
    }
    
    
    var_dump($test);
    Poi però ho avuto una sorpresa!
    Devo accedere ad un database che carica 2 database esterni.
    Faccio un esempio pratico per meglio comprendere la situazione.

    Il database a cui devo collegarmi è sempre "Database1.accdb".
    Esso però Carica le tabelle da due sorgenti esterne:
    Database2.accdb
    Database3.accdb

    Adesso io devo fare la stessa query 'SELECT * FROM table1' tenendo presente che table1 si trova in Database2.accdb;

    Se eseguo il codice sopra indicato, la query risulta vuota.
    Ho provato anche così:
    codice:
     'SELECT * FROM Database2.table1'
    ma non ho ottenuto il risultato sperato.

    Qualcuno saprebbe aiutarmi?
    grazie!!

  2. #2
    Crea una connnessione per ogni database e usa quella.

    Oppure importa tutto in MySQL e lavora direttamente su quello.
    Se ci sono altri che devono accedere a quei dati tramite Access, collega le tabelle MySQL ad Access e risolvi anche quell'aspetto.

  3. #3
    Salve,
    grazie dei suggerimenti, purtroppo ho le mani legate ... devo interagire necessariamente con il database in access.
    L'idea di creare una connessione per ogni database non è male, ma se riuscissi a trovare la sintassi giusta da utilizzare per le query verso il database che contiene i link alle origini esterne sarebbe meglio.
    grazie.

  4. #4
    SELECT elenco_campi FROM tabella IN 'percorso_completo_del_file'

    esempio

    codice:
    SELECT Orders.CustomerID, Orders.EmployeeID, Orders.OrderDate FROM Orders IN 'C:\msoffice97\Office\Samples\Northwind.mdb';

  5. #5
    Buongiorno optime,
    ho provato a seguire il tuo suggerimento trasformando la query con il codice che segue:
    codice:
    $mdbFilename = "C:\dati\Database1.accdb";
    
    
    $dbh = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=$mdbFilename; 
    
    
    
    
    $sql = 'SELECT * FROM table1 IN "C:\dati\Database3.accdb"';
    $result = $dbh->query($sql);
    while( $row = $result->fetch(PDO::FETCH_ASSOC) ) {
      $test[] = $row;
    }
    
    
    
    
    var_dump($test);
    Purtroppo la query non porta nessun risultato.
    Mi è sfuggito qualcosa?
    grazie.

  6. #6
    problema trovato!!!
    Grazie tante per l'aiuto prezioso!!!

  7. #7
    quale era il problema?

  8. #8
    Sto provando ad usare la sintassi che mi hai suggerito:
    codice:
    SELECT Orders.CustomerID, Orders.EmployeeID, Orders.OrderDate FROM Orders IN 'C:\msoffice97\Office\Samples\Northwind.mdb';
    il problema era nel percorso remoto sbagliato.

    Adesso viene il bello ... devo tentare di costruire una query complessa tra più tabelle in 2 diversi database prendendo spunto dal tuo esempio.

  9. #9
    poi facce sape'

  10. #10
    ok optime ... alla fine ho capito tutto.
    Non mi è servito più modificare le query come l'esempio che mi hai postato.
    Magari queste info potranno servire a chi come me non ha mai avuto a che fare con i database Microsoft Access.

    Come Webserver utilizzo XAMPP su sistema Windows.
    Sembra che Apache abbia qualche difficoltà con le unità di rete mappate, ad esempio Z:\cartella\
    Quindi sono intervenuto nel database principale che collega i due database come origine dati dando il percorso del server dei database del tipo \\192.168.0.xxx\cartella\

    Così facendo le classiche query hanno iniziato a funzionare.
    Di nuovo grazie per l'aiuto.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2021 vBulletin Solutions, Inc. All rights reserved.