Utiliser Zend_Db_Profiler pour capturer une requête SQL

Il est parfois bien utile de savoir précisément la requête SQL exécutée lorsque l’on utilise Zend_Db_Adapter. Le profiler est alors d’une grande aide. Comme exemple, considérons cet update :

$data = array(
	'option_value' => 'Ma valeur'
);
$db->update('ma_table', $data, 'option_name = "un_nom_bien_brave"');

Pour avoir une visualisation de la requête brute effectuée:

// Activation du profiler
$db->getProfiler()->setEnabled(true);

$data = array(
	'option_value' => 'Ma valeur'
);
$db->update('ma_table', $data, 'option_name = "un_nom_bien_brave"');

// Affichage de la requête
var_dump($db->getProfiler()->getLastQueryProfile()->getQuery());
var_dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());

// Il est bon de désactiver le profiler lorsque l'on a terminé
$db->getProfiler()->setEnabled(false);

Ce qui renvoit :

string 'UPDATE `ma_table` SET `option_value` = ? WHERE (option_name = "un_nom_bien_brave")' (length=79)
array
  1 => string 'Ma valeur' (length=9)