J'ai d'abord éviter l'activation de la journalisation pour surveiller AOP parce que je pensais que ce serait un tracas, mais il n'est pas difficile du tout. Vous n'avez pas besoin de redémarrer MySQL (après 5.1.9):
L'exécution de cette SQL dans phpMyAdmin ou dans tout autre environnement où vous pouvez avoir élevé db privilèges:
SET GLOBAL general_log = 'ON';
Dans un terminal, la queue de votre fichier de log. La mienne est ici:
>sudo tail -f /usr/local/mysql/data/myMacComputerName.log
Vous pouvez rechercher votre mysql fichiers avec ce terminal de commande:
>ps auxww|grep [m]ysqld
J'ai trouvé que PDO échappe à tout, de sorte que vous ne pouvez pas écrire
$dynamicField = 'userName';
$sql = "SELECT * FROM `example` WHERE `:field` = :value";
$this->statement = $this->db->prepare($sql);
$this->statement->bindValue(':field', $dynamicField);
$this->statement->bindValue(':value', 'mick');
$this->statement->execute();
Parce qu'il crée:
SELECT * FROM `example` WHERE `'userName'` = 'mick' ;
Qui ne créent pas une erreur, juste un résultat vide. Au lieu de cela j'avais besoin d'utiliser
$sql = "SELECT * FROM `example` WHERE `$dynamicField` = :value";
pour obtenir
SELECT * FROM `example` WHERE `userName` = 'mick' ;
Lorsque vous avez terminé de s'exécuter:
SET GLOBAL general_log = 'OFF';
ou bien vos journaux aurez une énorme.