Visualizzazione dei risultati da 1 a 10 su 10

Hybrid View

  1. #1
    prova :

    Codice PHP:
    $db->setAttribute (PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION
    inoltre non c'e bisogno di piazzare 10 try/catch per 10 istruzioni, puoi mettere 10 instruzioni dentro un try catch

    Codice PHP:
    try {       
       
    $db = new PDO("mysql:host=localhost;dbname=sac;charset=utf8"DB_USER  DB_PW);
       
    $db->setAttribute (PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    }
    catch (
    PDOException $EXCEPTIONS) {
       echo 
    'qualcosa non ha funzionato '.$EXCEPTIONS->getMessage();
    }  
      
    try {
       
    $email="roma@libero.it"
        
    $stmt$db->prepare("Select * anagrafe  anaEmai=:anaEmai");
       
    $stmt->bindvalue(':anaEmai'$emailPDO::PARAM_STR);
       
    $stmt->execute();
       
    $righe $stmt->rowCount();
       echo 
    "righe " $righe;
       unset(
    $db);
    }   
    catch (
    PDOException $EXCEPTIONS){
      echo 
    'anche qui qualcosa non ha funzionato:'$EXCEPTIONS->getMessage();

    un po meglio no?

  2. #2
    Che diavolo è la funzione handle_error() ?

  3. #3
    @bauleviaggiante
    Innanzi tutto grazie, per la pazienza e per l'aiuto.
    Il tuo codice funziona, ho provato a modificare (inserendo errori ) le stringhe di PREPARE e BINDVALUE e puntualmente è scattato l'errore con relativo messaggio.

    Doverosamente riconosciuto il giusto merito mi piacerebbe capire cosa è successo.
    Allora, il tuo primo suggerimento era di provare :
    Codice PHP:
    $db->setAttribute (PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION
    bene nella versione pre post io utilizzavo questo attributo, cambiato poi in " ERRMODE_WARNING " solo prima del post, quindi non puo' essere questa la causa del problema.

    Controllando il codice da te inviato ho riscontrato che l'unica differenza ( che pero' determina il non funzionamento del codice ) e' la diversa struttura try/catch.

    E' assolutamente vero che la struttura da me usata è, usando un eufemismo, ridondante, ma mai e poi mai sarei arrivato anche solo a ipotizzare che tale (ab)uso potesse creare un simile disastro.


    La funzione handle_error e' la seguente :
    Codice PHP:

    function handle_error($user_error_message$system_error_message
      { 
          
    session_start(); 
          
    $_SESSION['primomessa] = $user_error_message;  
          $_SESSION['
    secondomessaggio'] = $system_error_message; 
          header("Location: script/show_error.php"); 
          exit();
      } 
    Da PHP e MYSQL (Brett MCLaughlin / Tecniche nuove) ho modificato il tuo codice
    utilizzando questa funzione e tutto funziona bene.

    Grazie ancora.

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.