Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [PHP] : stesso codice 2 intepretazioni diverse

    Salve a tutti
    ho creato un sito in locale e poi dopo averlo testa l'ho trasferito sul server ed ho avuto una brutta sorpresa... una parte di codice in locale viene interpretata in un modo, sul server in un altro!

    Il bello è che sul server ho la versione 5.2.0-8+etch7 mentre in locale la 5.2.0... il che vorrebbe dire che sono pressochè identiche!

    allor veniamo al codice, sto usando la classe PDO per fare un inserimento nel database:

    Codice PHP:
           //inserisce un utente nella newsletter
            
    public function insert_newsletter($email,$cogn,$nom,$via,$citta,$cap,$prov)
            {
                
    $qry=$this->db->prepare('SELECT COUNT(*) n FROM newsletter_acf WHERE email=:email');
                
    $qry->execute(array(':email'=>$email));
                
    $ris=$qry->fetch(PDO::FETCH_ASSOC);
                
    $qry="";
                if (
    $ris['n']==)
                {
                    
    $qry=$this->db->prepare('INSERT INTO newsletter_Acf VALUES (:email,:cogn,:nom,:via,:citta,:cap,:prov,0,:dt)');
    //ecco la riga incriminata          

    $esito=$qry->execute(array(':email'=>$email,':cogn'=>$cogn,':nom'=>$nom,':via'=>$via,':citta'=>$citta,':cap'=>$cap,':prov'=>$prov,':dt'=>date('Ymd')));

    //fine riga incriminata!
                  
    if ($esito )
                    
    $res[0]=true;
              else
              {
                      
    $res[0]=false;
                      
    $errdes=$qry->errorInfo();
                      
    $res[1]=$errdes[2];
                  }

          }
                else
                {
            
    $res[0]=false;
            
    $res[1]='Email già registrata nella nostra newsletter';
          }
          return 
    $res;
            } 
    Il messaggio di errore è il seguente:
    codice:
    Fatal error: Call to a member function execute() on a non-object in /var/www/.../utility/db_use.php on line 177
    e la riga 177 come ho già segnalato nel codice è questa:

    $esito=$qry->execute(array(':email'=>$email,':cogn'=>$cogn,':n om'=>$nom,':via'=>$via,':citta'=>$citta,':cap'=>$c ap,'rov'=>$prov,':dt'=>date('Ymd')));
    ed è abastanza inspiegabile dato che prima fa la prepare!!!

    Fantascienza? è impazzito il server?

    voi che ne pensate?
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  2. #2
    Forse l'errore è nella riga precedente. Controlla che il valore restituito da prepare sia valido.

    EDIT: prova a sostituire "newsletter_Acf" con "newsletter_acf" nella insert di quella prepare.

  3. #3
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Secondo me il prepare non funziona e quindi $qry non diventa un oggetto valido.

    Controlla con http://it.php.net/manual/it/function.pdo-errorinfo.php
    think simple think ringo

  4. #4
    Originariamente inviato da MacApp
    Forse l'errore è nella riga precedente. Controlla che il valore restituito da prepare sia valido.

    EDIT: prova a sostituire "newsletter_Acf" con "newsletter_acf" nella insert di quella prepare.
    cacchio mi è sfuggito questa virgola....
    essendo in locale in Winzoz e il server Linux la differenza la fa anche questa virgola!!

    Maledetto windows caseunsensitive!!!!


    Grazie a tutti... merito una bacchettata!
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

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