sql >> Database teknologi >  >> RDS >> Mysql

Fejlkontrol for PDO-forberedte erklæringer

Jeg foretrækker at indstille fejltilstanden til at kaste undtagelser som denne:

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

lige efter jeg har oprettet forbindelse til databasen. Så hvert problem vil kaste en PDOExceptionSå din kode ville være:

$selectQuery = '
                SELECT 
                    ' . implode($allFields, ', ') . ' 
                FROM 
                    People 
                WHERE 
                    ' . $fieldName . ' = :value
';
try
{ 
    $selectQueryResult = $db->prepare($selectQuery);
    selectQueryResult->bindParam(':value', $fieldValue);
    $selectQueryResult->execute();
}
catch(PDOException $e)
{
    handle_sql_errors($selectQuery, $e->getMessage());
}

hvor funktionen ville være:

function handle_sql_errors($query, $error_message)
{
    echo '<pre>';
    echo $query;
    echo '</pre>';
    echo $error_message;
    die;
}
'; echo $error_message; dø;

Faktisk bruger jeg en generel funktion, der også har noget lignende

$debug = debug_backtrace();
echo 'Found in ' . $debug[0]['file'] . ' on line ' . $debug[0]['line'];

for at fortælle mig, hvor problemet var, hvis jeg kører flere forespørgsler



  1. Oracle indsæt i tabel2 og slet derefter fra tabel1, undtagelse hvis fejl

  2. Docker Laravel Mysql:kunne ikke finde driveren

  3. Sådan får du alle fejl i alle SSIS-pakker i en løsning

  4. Hvordan får man en liste over MySQL-visninger?