sql >> Database >  >> RDS >> Mysql

Fout bij controle op door PDO opgestelde verklaringen

Ik geef er de voorkeur aan om de foutmodus in te stellen op het genereren van uitzonderingen zoals deze:

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

direct nadat ik verbinding heb gemaakt met de database. Dus elk probleem zal een PDOException veroorzaken, dus je code zou zijn:

$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());
}

waar de functie zou zijn:

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

In feite gebruik ik een algemene functie die ook zoiets heeft als

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

om me te vertellen waar het probleem was als ik meerdere zoekopdrachten uitvoer



  1. Wijzigingen ophalen uit tabel met ElasticSearch JDBC-rivier

  2. Hoe ibdata1-bestand in MySQL te verkleinen / opschonen?

  3. Vastgelopen zoekopdracht beëindigen (inactief in transactie)

  4. Vraag en aanbod afstemmen - Oplossingen, deel 3