Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788

    PHP-Access errore script

    Saluti a tutti non riesco a capire l'errore:

    codice:
    $pathT= "db/" ;
    $path=realpath($pathT);
    
    /****
    identifichiamo il database
    ****/
    $db_name= "/newsletter.mdb" ;
    $dsource=$path.$db_name ;
    
    /****
    Come sempre la stringa di connessione
    ****/
    $cn_string="Provider=Microsoft.Jet.OLEDB.4.0;" ;
    $cn_string.="Data Source=$dsource;" ;
    
    /****
    Istanzio un oggetto Connection e apro la connessione con il database atraverso il metodo Open() dell'oggetto. Il metodo prende come argomento la stringa di connessione, oppure il DSN quando c'è.
    ****/
    
    if (!file_exists($dsource) ){
    echo $dsource;
    die("Il database non esiste") ;
    
    }
    
    $cn= new COM("ADODB.Connection");
    
    if($errore==0){
    	$sql="INSERT INTO iscritti (nome, cognome, email, altro) VALUES('$nome', '$cognome', '$email', '$info')";
    	echo $sql;
    	$rsInsert= new COM("ADODB.Recordset") ;
    	$rsInsert->Open($sql,$cn) or die();
    	
    }
    Questo l'errore:
    Warning: (null)(): Invoke() failed: Eccezione. Source: ADODB.Recordset Description: Operazione non consentita per un oggetto che fa riferimento a una connessione chiusa o non valida. in c:\root_php\www\may-day\def\newsletter\iscrgo.php on line 15
    La linea 15 sarebbe:
    $rsInsert->Open($sql,$cn) or die();


    Sapete dirmi dove sbaglio?
    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

  2. #2
    Non hai aperto la connessione

    $cn->open() ;

    Se vuoi anzichè usare l'oggetto recordset in modo esplicito puoi fare più semplicemente

    $cn->open($cn_string) ;
    $recordset = $cn->execute($sql) ;
    per favore NIENTE PVT TECNICI da sconosciuti

  3. #3
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788
    Originariamente inviato da Fabio Heller
    Non hai aperto la connessione

    $cn->open() ;

    Se vuoi anzichè usare l'oggetto recordset in modo esplicito puoi fare più semplicemente

    $cn->open($cn_string) ;
    $recordset = $cn->execute($sql) ;
    Grazie mille correggo non so come mi sia sfuggito avendo fatto un copia incolla da un altro script

    Grazie
    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

  4. #4
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788
    Warning: (null)(): Invoke() failed: Eccezione. Source: Microsoft OLE DB Provider for ODBC Drivers Description: [Microsoft][ODBC Driver Manager] Nome origine dati non trovato e driver predefinito non specificato. in c:\root_php\www\may-day\def\newsletter\db.php on line 31
    Alla linea 31 c'è proprio
    $cn->Open();
    Warning: (null)(): Invoke() failed: Eccezione. Source: ADODB.Recordset Description: Operazione non consentita per un oggetto che fa riferimento a una connessione chiusa o non valida. in c:\root_php\www\may-day\def\newsletter\iscrgo.php on line 15
    Di nuovo come prima...
    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

  5. #5
    Ho l'impressione che non trovi il db, fai un print di tutta la connection string e vedi se corrisponde
    per favore NIENTE PVT TECNICI da sconosciuti

  6. #6
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788
    Originariamente inviato da Fabio Heller
    Ho l'impressione che non trovi il db, fai un print di tutta la connection string e vedi se corrisponde
    Già l'ho fatto ed in effetti la stringa è giusta..

    In ogni caso l'if mi serve proprio a calcolare che trovi il DB

    L'unica cosa è che facendo il print mi esce:

    c:\root_php\www\may-day\def\newsletter\db/newsletter.mdb

    vedi l'ultimo slash??

    Quella è l'unica cosa strana.. per il resto non capisco
    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

  7. #7
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788
    Originariamente inviato da Inoki
    Già l'ho fatto ed in effetti la stringa è giusta..

    In ogni caso l'if mi serve proprio a calcolare che trovi il DB

    L'unica cosa è che facendo il print mi esce:

    c:\root_php\www\may-day\def\newsletter\db/newsletter.mdb

    vedi l'ultimo slash??

    Quella è l'unica cosa strana.. per il resto non capisco
    Nessun suggerimento?
    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

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.