cakephp voir la requête SQL compilée avant l'exécution
Ma requête obtient l'erreur de dépassement de délai sur chaque course. Sa pagination avec des jointures.
Je veux debug SQL, mais depuis, je reçois un délai d'attente, je ne peux pas le voir.
Comment puis-je voir la compilation de la Requête SQL avant l'exécution?
Gâteau code:
$this -> paginate = array(
'limit' => '16',
'joins' => array( array(
'table' => 'products',
'alias' => 'Product',
'type' => 'LEFT',
'conditions' => array('ProductModel.id = Product.product_model_id')
)),
'fields' => array(
'COUNT(Product.product_model_id) as Counter',
'ProductModel.name'
),
'conditions' => array(
'ProductModel.category_id' => $category_id,
),
'group' => array('ProductModel.id')
);
source d'informationauteur yossi
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, définir la
debug
variable de 2 àapp/config/config.php
.Puis ajouter:
à la fin de votre mise en page. Cela devrait effectivement être commenté dans votre gâteau de mise en page.
Vous allez maintenant être en mesure de voir toutes les requêtes SQL qui vont de la base de données.
Maintenant copie de la requête et de l'utilisation de la SQL EXPLIQUER de commande (le lien est pour MySQL) sur la base de données pour voir ce que la requête ne dans le SGBD. Pour en savoir plus sur CakePHP débogage vérifier ici.
Depuis votre script n'est pas encore rendu, vous pouvez essayer d'obtenir les dernières connecter directement à partir de la source de données avec:
Ce doit être un modèle depuis la
getDatasource()
fonction est définie dans un modèle.Inspecter l'ensemble de la
$logs
variable et de voir ce qui est là.Une chose que vous pouvez faire est ....
Aller à Cake/Model/DataSource/DboSource.php et de localiser la fonction execute() et print $variable sql.
Que doit imprimer le sql.
Ce n'est certainement pas la façon la plus propre (comme vous sont en train de changer Gâteau répertoire) .. mais serait certainement plus rapide juste pour déboguer si quelque chose ne fonctionne pas avec sql.
Façon Simple de montrer toutes les requêtes de votre modèle:
ou, vous pouvez obtenir toutes la requête en ajoutant la ligne suivante à la fonction execute() dans lib/Cake/Model/DataSource.php
définir la variable debug 2 app/config/config.php.
Mettre comme =>Requête SQL: INSERT INTO
photoora_photoorange
.payments
Les VALEURS (*******)[insérer la requête][2]
définir la variable debug 2 app/config/config.php.
Et