sql >> Database >  >> RDS >> Mysql

Waarom blijven onze vragen hangen in de staat Schrijven naar net in MySql?

Aangezien applicaties niet op magische wijze queries genereren zoals ze willen, denk ik dat het vrij waarschijnlijk is dat er ergens in je applicatie een fout zit die dit veroorzaakt. Hier zijn een paar suggesties die u kunt gebruiken om het op te sporen. Ik vermoed dat je PHP gebruikt, omdat je MySQL gebruikt, dus ik zal dat gebruiken voor mijn voorbeelden.

Probeer opmerkingen toe te voegen vóór al uw vragen in de toepassing, zoals dit:

$sqlSelect  = "/* file.php, class::method() */";
$sqlSelect .= "SELECT * FROM foo ";
$sqlSelect .= "WHERE criteria";

De opmerking wordt weergegeven in uw querylogboek. Als je een soort database-api-wrapper gebruikt, zou je deze berichten mogelijk automatisch kunnen toevoegen:

function query($sql)
{
    $backtrace = debug_backtrace();
    // The function that executed the query
    $prev = $backtrace[1];
    $newSql = sprintf("/* %s */ ", $prev["function"]);
    $newSql .= $sql;

    mysql_query($newSql) or handle_error();
}

Als u geen wrapper gebruikt, maar de query's rechtstreeks uitvoert, kunt u de runkit-extensie en de functie runkit_function_rename om mysql_query (of wat je ook gebruikt) te hernoemen en de queries te onderscheppen.



  1. PHP - Exporteer MySQL-tabellen naar JSON-bestand

  2. Het dataframe naar de MySql DB-tabel schrijven

  3. Gebruik samengestelde primaire sleutel als externe sleutel

  4. Fout 404 niet gevonden met EM 12c