Boh! ... dipende sopratutto a cosa ti serve... diciamo che va gestito il discorso degli id nel senso che se e' una insert devi leggere "dopo" se un update puo' essere indifferente se prima o dopo, ma se e' un delete l'id lo devi leggere prima.

il tipo di statement lo puoi individuare tramite un array e stristr() e lo stesso per il nomi delle tabelle. Parti dal principio che per sapere cosa cercare devi sapere cosa stai cercando...

esempio:

Codice PHP:
<?php
$tipo 
= array(=> 'INSERT'=> 'UPDATE'=> 'DELETE');

$query "INSERT INTO `jx_adv` (`adv_id`, `adv_title`, `adv_code`, `adv_target`, `adv_identify`)
VALUES (NULL , '', 'ww', '', '')"
;

foreach(
$tipo as $value) {
   if(
stristr($query$value)) {
    echo 
$tipo_query $value;
    }
}

?>
lo stesso fai con i nomi delle tabelle. Se non sai i nomi delle tabelle interessate si presume almeno tu sappia il nome del database. Allora fai una query e popola un array con il nome delle tabelle e poi rifai il giochino del foreach cui sopra.

altro esempio:
Codice PHP:
    mysql_connect("localhost""root""password");
    
$res mysql_list_tables("tuo_db");

    for (
$i 0$i mysql_num_rows($res); $i++) {
        
$tabelle[] =  mysql_tablename($res$i);
        }
 
foreach(
$tabelle as $value) {
   if(
stristr($query$value)) {
    echo 
$nome_tabella $value;
    }

credo sia la via piu' semplice.