Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17

Discussione: PHP + ACCESS

  1. #11
    Riporto in alto questa discussione poiché mi trovo ad avere a che fare con un problema simile.

    Riadattando lo script postato dall'amico Dungino, che poi è parte di un tutorial di freephp.html.it, riesco a farlo funzionare in locale. Per ora non fa altro che leggere una tabella semplicissima con id progressivo, nome e cognome. Posto di seguito il codice che è abbastanza elementare dato che il sottoscritto è tendenzialmente un programmatore ASP e sta muovendo i suoi primi passi nel mondo PHP!

    __________________________________________________ _________________

    <html>
    <head>
    <title></title>
    <?php
    $path=realpath("prova.mdb");

    $dsource=$path;

    $cn_string="Provider=Microsoft.Jet.OLEDB.4.0;";
    $cn_string.="Data Source=$dsource;";

    if(!file_exists($dsource)){

    die("Il database non esiste");

    }

    $cn= new COM ("ADODB.Connection");
    $cn->open($cn_string);

    ?>


    </head>

    <body>

    <?php

    $query="select * from persona";

    $rs= new COM ("ADODB.Recordset");
    $rs->Open($query,$cn);
    ?>
    <table>
    <tr>
    <td>
    Nome
    </td>
    <td>
    Cognome
    </td>
    </tr>
    <?php
    while(!$rs->EOF){
    echo("<tr>");
    echo("<td>".$rs->Fields['nome']->value."</td><td>".$rs->Fields['cognome']->value."</td>");
    echo("</tr>");
    $rs->MoveNext();
    }
    ?>
    </table>
    <?php
    $rs->Close();

    $rs->Release();
    $rs->null;

    $cn->Close();
    $cn->Release();
    $cn->null;

    ?>
    </body>
    </html>
    __________________________________________________ ___________________

    Come ho detto in precedenza, detto script funziona solamente in locale, dopo aver provveduto all'installazione di easyphp 1.7 sulla mia macchina.
    I problemi sono in remoto. Ho uno spazio web su Altervista e voglio utilizzare Access in maniera da poter effettuare il trasferimento del db tramite FTP e senza dover quindi prodigarmi in scomodi dump di tabelle se usassi MySQL. Ho caricato db e la pagina di cui ho postato il codice, ma visualizzo a video il seguente errore:

    Fatal error: Cannot instantiate non-existent class: com in /membri/eroedelsilenzio/prova.php on line 18

    Qualcuno sa darmi la soluzione o spiegarmi se posso ovviare in qualche maniera?

  2. #12
    Come faccio a sapere se la query è stata eseguita ?:

    <?
    include("config.php");
    include("success.php");
    include("errors.php");

    /* dichiarazione variabili*/

    $nome = isset( $_POST['nome'] ) ? $_POST['nome'] : '';
    $nome=trim($nome);
    $nome=ucwords($nome);

    $cognome = isset( $_POST['cognome'] ) ? $_POST['cognome'] : '';
    $cognome=trim($cognome);
    $cognome=ucwords($cognome);

    $username = isset( $_POST['username'] ) ? $_POST['username'] : '';
    $username=trim($username);

    $password = isset( $_POST['password'] ) ? $_POST['password'] : '';
    $password=trim($password);

    $email = isset( $_POST['email'] ) ? $_POST['email'] : '';
    $email=trim($email);

    $indirizzo = isset( $_POST['indirizzo'] ) ? $_POST['indirizzo'] : '';
    $indirizzo=trim($indirizzo);

    $locale=isset( $_POST['locale'] ) ? $_POST['locale'] : '';
    $locale=trim($locale);


    $telefono = isset( $_POST['telefono'] ) ? $_POST['telefono'] : '';
    $telefono=trim($telefono);
    $telefono=addslashes($telefono);
    $dati="Ecco i nomi inseriti:

    Nome: $nome

    Cognome: $cognome

    Username: $username

    Password: $password

    Indirizzo: $indirizzo

    Località:$locale

    Email:$email

    Telefono: $telefono
    ";

    $query="insert into anagrafica (profilo,[cognome],[nome],[indirizzo],[localita],[tel],email,[user],[pwd])
    values ('tesserato','$cognome','$nome','$indirizzo','$loc ale','$telefono','$email','$username', '$password')" ;


    $rs= new COM("ADODB.Recordset") ;
    $rs->Open($query,$cn) ;

    /*vedo se la query è stata eseguita*/
    if(!$rs->EOF){
    successo($dati,"admin2.php");

    }

    else{
    errore("Non è stato inserito alcun record");
    }

    /* Pulizia dell'oggetto Recordset */
    $rs->Release() ;
    $rs= null ;

    /* Chiudo la connessione e libero la memoria */
    $cn->Close() ;
    $cn->Release() ;
    $cn= null ;


    ?>

    Così come ho scritto non mi funziona!!, ma come faccio a sapere se la query è stata eseguita ?
    Roberto Dungino

  3. #13
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    Codice PHP:
    $rs= new COM("ADODB.Recordset") ; 

    [.:: JaguarXF ::.]
    __________________

  4. #14
    Se la query di inserimento hya avuto successo ???
    Poi un'altra domanda:

    un'altra domanda sul database ACCESS, per gestire le eccezzioni tipo ' "" con addslashes non funziona poichè non mi accetta \' ,\" ,questo tipo di carattere come devo fare ?
    Roberto Dungino

  5. #15
    Originariamente inviato da mark2x
    Codice PHP:
    $rs= new COM("ADODB.Recordset") ; 
    Ho scoperto che la classe COM è disponibile solo con i provider che forniscono spazio e supporto su server windows, mentre temo che Altervista si appoggi su server Linux. I casi sono due, o trovo uno spazio web gratuito che supporti php e al contempo si appoggi su server windows o mi procuro un tool stile EasyPHP ma per ASP dato che su nessuna delle mie macchine ho installato IIS e pertanto non posso testare il sito in locale con quel linguaggio...

  6. #16
    Come si fà a sapere se la query è stata eseguita ?
    Come faccio a sapere se la query è stata eseguita ?:

    <?
    include("config.php");
    include("success.php");
    include("errors.php");

    /* dichiarazione variabili*/

    $nome = isset( $_POST['nome'] ) ? $_POST['nome'] : '';
    $nome=trim($nome);
    $nome=ucwords($nome);

    $cognome = isset( $_POST['cognome'] ) ? $_POST['cognome'] : '';
    $cognome=trim($cognome);
    $cognome=ucwords($cognome);

    $username = isset( $_POST['username'] ) ? $_POST['username'] : '';
    $username=trim($username);

    $password = isset( $_POST['password'] ) ? $_POST['password'] : '';
    $password=trim($password);

    $email = isset( $_POST['email'] ) ? $_POST['email'] : '';
    $email=trim($email);

    $indirizzo = isset( $_POST['indirizzo'] ) ? $_POST['indirizzo'] : '';
    $indirizzo=trim($indirizzo);

    $locale=isset( $_POST['locale'] ) ? $_POST['locale'] : '';
    $locale=trim($locale);


    $telefono = isset( $_POST['telefono'] ) ? $_POST['telefono'] : '';
    $telefono=trim($telefono);
    $telefono=addslashes($telefono);
    $dati="Ecco i nomi inseriti:

    Nome: $nome

    Cognome: $cognome

    Username: $username

    Password: $password

    Indirizzo: $indirizzo

    Località:$locale

    Email:$email

    Telefono: $telefono
    ";

    $query="insert into anagrafica (profilo,[cognome],[nome],[indirizzo],[l
    ocalita],[tel],email,[user],[pwd])
    values ('tesserato','$cognome','$nome','$indiri
    zzo','$locale','$telefono','$email','$us
    ername', '$password')" ;


    $rs= new COM("ADODB.Recordset") ;
    $rs->Open($query,$cn) ;

    /*vedo se la query è stata eseguita*/
    if(!$rs->EOF){
    successo($dati,"admin2.php");

    }

    else{
    errore("Non è stato inserito alcun record");
    }

    /* Pulizia dell'oggetto Recordset */
    $rs->Release() ;
    $rs= null ;

    /* Chiudo la connessione e libero la memoria */
    $cn->Close() ;
    $cn->Release() ;
    $cn= null ;


    ?>

    Così come ho scritto non mi funziona!!, ma come faccio a sapere se la query è stata eseguita ?
    Roberto Dungino

  7. #17
    Perché non provi a mettere un window.alert in javascript subito dopo l'esecuzione della query? Se questo non viene visualizzato almeno riuscirai a capire dove sta il problema.

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