Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di ZeroOne
    Registrato dal
    Feb 2002
    Messaggi
    110

    PHP e connessione a db MDB - problemi di connessione

    salve

    la situazione è la seguente:
    in azienda abbiamo un server web (lotus domino) con supporto a php
    ahimè non essendo io nel reparto IT e non avendo "poteri" per chiedere che installino MySQL mi devo arrangiare come posso da me

    Devo fare alcuni script PHP che leggano e scrivano su un db neanche tanto grande quindi pensavo di usare un file di access MDB. Tanto gli script devono girare solo a livello del nostro ufficio quindi non c'è nemmeno accesso dall'esterno alle pagine e ritengo che un MDB sia + che sufficiente.

    spulciando tra le varie guide e howto della rete ho trovato alcune stringhe di connessione che usano l'estensione PDO di php.
    ho quindi fatto abilitare (questo posso farlo) nel php ini la relativa estensione e ora infatti con phpinfo ottengo questo:
    codice:
    PDO support    --->    enabled
    PDO drivers  ---->     odbc
    
    PDO_ODBC
    PDO Driver for ODBC (Win32)  ----->   enabled
    ODBC Connection Pooling   ---->   Enabled, strict matching
    A questo punto però le varie guide su internet parlano di usare il DSN ma, come sopra, non avendo accesso da admin a Windows server non posso configurare DSN ecc...
    Ho anche trovato alcune stringhe per usare il DSN-LESS ma continuo ad ottenere errore

    vi chiedo quindi se avete una stringa/guida/tutorial/suggerimento per poter fare la connessione al file MDB

    grazie

    ciao

    S
    It's show time!

  2. #2

    Re: PHP e connessione a db MDB - problemi di connessione

    Originariamente inviato da ZeroOne

    Ho anche trovato alcune stringhe per usare il DSN-LESS ma continuo ad ottenere errore
    che stringhe usi e che errore ottieni di preciso?

  3. #3
    Utente di HTML.it L'avatar di ZeroOne
    Registrato dal
    Feb 2002
    Messaggi
    110
    allora alcune stringhe che ho provato sono queste:

    la prima provata è questa: (ho staccato odbc: da DRIVER perchè se no faceva la faccina...)
    codice:
    $dbName = $_SERVER["DOCUMENT_ROOT"] . "wiki/test.mdb";
    if (!file_exists($dbName)) {
        die("Could not find database file.");
    }
    $db = new PDO("odbc: DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbName; Uid=; Pwd=;");
    in questo caso $dbName è la variabile che ho usato sempre anche in altri test perchè come risultato mi da:
    d:/Lotus/Domino/Data/domino/html/wiki/test.mdb
    che è esattamente il percorso sul web server del file mdb

    poi altre stringhe sono:
    codice:
        try{
            $dbh = new PDO("odbc: Driver={Microsoft Access Driver (*.mdb)};Dbq=$dbName;Uid=Admin");
        }
        catch(PDOException $e){
            echo $e->getMessage();
        }
    codice:
    try{
       // Connect
       $dbh = new PDO("odbc: Driver={Microsoft Access Driver (*.mdb)};Dbq=$dbName;Uid=Admin");
    
        // INSERT data
        $count = $dbh->exec("INSERT INTO animals(animal_type, animal_name) VALUES ('kiwi', 'troy')");
    
        // echo the number of affected rows
        echo $count;
    
        // close the database connection
        $dbh = null;
    }
    catch(PDOException $e){
        echo $e->getMessage();
    }
    codice:
    //create an instance of the  ADO connection object
    $conn = new COM ("ADODB.Connection")
      or die("Cannot start ADO");
    
    //define connection string, specify database driver
    $connStr = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=$dbName";
      $conn->open($connStr); //Open the connection to the database
    
    //declare the SQL statement that will query the database
    $query = "SELECT * FROM cars";
    
    //execute the SQL statement and return records
    $rs = $conn->execute($query);
    
    $num_columns = $rs->Fields->Count();
    echo $num_columns . "
    ";  
    
    for ($i=0; $i < $num_columns; $i++) {
        $fld[$i] = $rs->Fields($i);
    }
    in tutti i casi commentando riga per riga per vedere dove si blocca, quando arriva a eseguire la riga
    $conn->open
    o comunque quella relativa alla connessione al DB, la pagina mi va in errore.

    purtroppo sono novello su PHP e non ho impostato script di uscita con descrizione dell'errore perchè ancora "non so come si fa"

    se avete 2 indicazioni veloci posso aggiungere qualche riga per capire anche l'errore...

    grazie
    ciao
    It's show time!

  4. #4
    prova a vedere così:

    Codice PHP:
    $db realpath("d:/Lotus/Domino/Data/domino/html/wiki/test.mdb");
    $conn = new COM("ADODB.Connection");
    $str "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=".$db
    $conn->Open($str);
    echo 
    'la connessione è:'.$conn->State//0=fallita 1=ok 

  5. #5
    Utente di HTML.it L'avatar di ZeroOne
    Registrato dal
    Feb 2002
    Messaggi
    110
    fatto ma ottengo l'errore che ottenevo con le prove.
    Infatti, nonostante avessi inserito anche nelle mie prove degli "or die()..." per stampare qualcosa nel caso di malfunzionamento non ottenevo una pagina bianca con un testo bensì l'errore che riporto di seguito:

    Errore del server
    Si è verificato un errore nel sito web durante il recupero di http://indirizzo-del-web-server:8080/wiki/test2.php . Potrebbe non essere disponibile per manutenzione o essere configurato in modo errato.

    Ecco qualche suggerimento:
    • Ricarica questa pagina web più tardi.



    Errore HTTP 500 (Internal Server Error): Si è verificata una condizione imprevista durante il tentativo del server di soddisfare la richiesta.
    It's show time!

  6. #6
    Originariamente inviato da ZeroOne

    Errore del server
    Si è verificato un errore nel sito web durante il recupero di http://indirizzo-del-web-server:8080/wiki/test2.php . Potrebbe non essere disponibile per manutenzione o essere configurato in modo errato.

    Ecco qualche suggerimento:
    • Ricarica questa pagina web più tardi.


    Errore HTTP 500 (Internal Server Error): Si è verificata una condizione imprevista durante il tentativo del server di soddisfare la richiesta.
    Beh...allora direi che devi contattare chi amministra il server... forse c'è un firewall che ti blocca, o non hai i permessi o la porta http non è quella standard, o...qlcosa del genere...

    insomma direi che più che un problema di codice php qui abbiamo un problema di connessione al server...

  7. #7
    Utente di HTML.it L'avatar di ZeroOne
    Registrato dal
    Feb 2002
    Messaggi
    110
    capito
    è quello che temevo

    allora provo con una domanda alternativa:
    sempre nell'ambito di piccole esigenze, ho delle alternative all'utilizzo di un file mdb? come database?
    ha senso usare un xml? oppure un xls? altro?


    grazie mille
    It's show time!

  8. #8
    Se hai pochi dati da trattare usare xml ha MOLTO senso.

    Però mi sembra di capire dall'errore che tu sul server non sia al momento in grado neppure per far girare una semplice pagina prova.php
    Codice PHP:
    echo "ciao mondo"
    o sbaglio?

    in questo caso il tuo problema è a monte...

  9. #9
    Utente di HTML.it L'avatar di ZeroOne
    Registrato dal
    Feb 2002
    Messaggi
    110
    no no io su server riesco a far girare tutto il php che voglio

    infatti ho già impostato uno script che mi disegna (ad esempio) il calendario dell'anno corrente con sabati e domeniche in evidenza

    e funziona bene

    il problema ora sorge quando voglio collegarmi a un file mdb....

    in pratica sto cercando di gestire il piano ferie dell'ufficio da php

    il calendario è disegnato...ora volevo salvare e recuperare i dati dei colleghi (siamo in 15) sui loro periodi di ferie
    diciamo che 15 persone hanno circa 10 piani a testa:
    1 record per una settiman
    1 record per un altra settimana
    1 record per le 2 settimane obbligatorie vicine
    1 record per eventuale altra settimana
    1 record per 1-2 giorni sparsi
    1 record per altri 2-3 giorni sparsi

    alla fine sì, siamo al massimo a 10 record per persona

    dici che con xml è gestibile?

    oppure stavo guardando anche sqlite...potrebbe essere un'alternativa secondo te?

    grazie
    ciao
    It's show time!

  10. #10
    Originariamente inviato da ZeroOne


    il calendario è disegnato...ora volevo salvare e recuperare i dati dei colleghi (siamo in 15) sui loro periodi di ferie

    alla fine sì, siamo al massimo a 10 record per persona

    dici che con xml è gestibile?

    grazie
    ciao
    Sì sì xml è l'ideale per un'attività simile, un db sarebbe fin sprecato, figuriamoci se oltretutto devi impazzire per installarlo


    per gestore i file xml in php puoi usare simplexml coadiuvato da xpath:
    http://www.php.net/manual/en/simplex...ples-basic.php
    http://php.net/manual/en/simplexmlelement.xpath.php

    qui un tutorial completo:
    http://www.phpro.org/tutorials/Intro...-With-PHP.html

    ovviamente assicurati però di avere i permessi in lettura e scrittura dei file sul server...

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.