Visualizzazione dei risultati da 1 a 10 su 10

Visualizzazione discussione

  1. #1

    PDO Gestione errori non funziona

    Salve a tutti, come mi e' stato suggerito sto' cercando di utilizzare PDO al posto di MYSQL.

    Dopo lungo lavoro sono riuscito a scrivere questo codice :

    <PHP>

    <?php


    try {
    $db = new PDO('mysql:host=localhost;dbname=xxxx;charset=utf8 mb4',"root", ""); }
    catch (PDOException $EXCEPTIONS) {
    echo $EXCEPTIONS->getMessage(); }

    try {
    $db->setAttribute (PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); }
    catch (PDOException $EXCEPTIONS) {
    echo $EXCEPTIONS->getMessage(); }



    $email="roma@libero.it";

    try {
    $stmt= $db->prepare("Select * FROM anagrafe WHERE anaEmai=:anaEmai"); }
    catch (PDOException $EXCEPTIONS) {
    echo $EXCEPTIONS->getMessage(); }

    try {
    $stmt->bindvalue(':anaEmai', $email, PDO::PARAM_STR); }
    catch (PDOException $EXCEPTIONS) {
    echo $EXCEPTIONS->getMessage(); }

    try {
    $stmt->execute();
    } catch (PDOException $EXCEPTIONS) {
    echo $EXCEPTIONS->getMessage(); }

    $righe=$stmt->rowCount();
    echo "righe " . $righe;
    unset($db);
    ?>

    </PHP>

    Funziona bene, pero' riscontro una anomalia, se modifico la query :
    "Select * FROM anagrafe WHERE anaEmai=:anaEmai"
    in "Select * anagrafe WHERE anaEmai=:anaEmai"

    il gestore degli errori interviene solo sulla riga di execute e non in PREPARE e
    BIND, questo sebbene anche questi comandi dovrebbero generare (letto dal manuale)
    errori.

    Ho provato anche a controllare se tornano FALSE, possibilita' sempre prevista dal
    manuale, ma neppure questo funziona.

    E' vero che posso utilizzare il codice cosi' come e', magari eliminando i TRY/CATCH su PREPARE
    e BIND che sono inutili, ma mi piacerebbe capire perche' ho questo risultato.

    Spero qualcuno sia in grado di darmi un suggerimento.

    Grazie.

    p.s. dico lungo lavoro perche' oltre a scrivere il codice (aiutato da web) ho cercato di capirlo, cosa per me non proprio semplicissima.
    Ultima modifica di curzio.maria; 19-05-2017 a 15:18

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.