Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    14

    Compilare modulo pdo_odbc

    Salve.. Spero che qualcuno mi sappia dare una soluzione, anche se credo sia un pò tecnica e molto meno riguardante la logica di programmazione.

    Devo sviluppare un applicazione php da far girare sul server Lamp del mio cliente. IN una fase di transizione, però, al posto di Mysql dovrei ricorrere FORZATAMENTE, NESSUNA ALTERNATIVA!, a un db access in attesa del porting dei dati. La prima cosa che ho pensato è stato di usare un layer di astrazione per la comunicazione col database, in modo da non dover riscrivere successivamente il codice cambiando DBMS. (Se non mysql, PostgreSQL). Avevo usato inizialmente ADOdb, ma documentandomi meglio ho ripiegato su PDO. Girando con xampp su windows, usando il database in locale con connessione DSN-less (connessione diretta al file database.mdb tramite odbc), mi è bastato abilitare l'estensione pdo_odbc nel file php.ini per vedere funzionare l'applicativo. Essendo il futuro server del cliente una macchina linux, ho provato a far girare l'applicativo sul mio pc di casa, con una distro linux (Archlinux) e php5.2.6 installato da pacchetto binario. Ho decommentato su php.ini l'estensione pdo_odbc, ma guardando le estensioni caricate, o leggendo i driver abilitati per l'estensione PDO, pdo_odbc non è presente.

    Se effettuo la connesisone al file access (questo modo funzia su windows)
    Codice PHP:
    $db realpath("database.mdb");
    $dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=$db;Uid=Admin"); 
    MI dice driver non trovato...... Come faccio a compilare SOLO il modulo, senza usare i sorgenti di php e senza riscaricare tutto dal sito php.net (e usando il parametri di ./configure)??

    O cmq.. c'è un modo per far funzionare il db access su linux tramite odbc?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    14
    Ok.. giusto per informazione, mi son chiarito un pò le idee..

    Innanzi tutto ci vuole un gestore ODBC, su linux merita usare unixodbc. Poi servono i driver specifici per il database da collegare.
    Non si può accedere localmente a db access localmente su macchine unix a meno di soluzioni a pagamento (ODBC-ODBC bridge della Easysoft - 699£), cosa alquanto improponibile. Esistono gli mdbtools, che permettono di accedere in lettura ai db.mdb (versione 5.0), ma sembra che non sia più sviluppato come progetto, visto che la versione 6.0 che si proponeva di dare l'accesso in scrittura si è arenata ad una pre-relase non compilabilie (almeno per me). Cmq continuo a ottenere un errore in fase di connessione:
    codice:
    SQLSTATE[IM004] SQLConnect: 0 [unixODBC][Driver Manager]Driver's SQLAllocHandle on SQL_HANDLE_HENV failed
    che non sembra volersi risolvere.

    Siccome il mio cliente ha un db che funziona su una macchina windows a cui ci si collega in remoto, ho optato per i driver forniti dal client dell'ODBC-ODBC bridge della Easysoft, che è gratuito e che permette appunto di connettersi a un server su cui "gira" il db..

    Se qualcuno ha qualcosa da aggiungere dica pure


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 © 2025 vBulletin Solutions, Inc. All rights reserved.