2010-05-28 5 views
1

j'ai créé cette requête qui fonctionne bien:Doctrine/symfony: Sortie getSqlQuery() dans l'onglet phpMyAdmin/SQL

$q1 = Doctrine_Query::create() 
    ->from('Usuario u') 
    ->leftJoin('u.AmigoUsuario a ON u.id = a.user2_id OR u.id = a.user1_id') 
    ->where("a.user2_id = ? OR a.user1_id = ?", array($id,$id)) 
    ->andWhere("u.id <> ?", $id) 
    ->andWhere("a.estado LIKE ?", 1); 

echo $q1->getSqlQuery(); 

L'appel à cette clause getSqlQuery émet:

SELECT s.id AS s__id, s.username AS s__username, s.algorithm AS s__algorithm, s.salt AS s__salt, s.password AS s__password, s.is_active AS s__is_active, s.is_super_admin AS s__is_super_admin, s.last_login AS s__last_login, s.email_address AS s__email_address, s.nombre_apellidos AS s__nombre_apellidos, s.sexo AS s__sexo, s.fecha_nac AS s__fecha_nac, s.provincia AS s__provincia, s.localidad AS s__localidad, s.fotografia AS s__fotografia , s.avatar AS s__avatar, s.avatar_mensajes AS s__avatar_mensajes, s.created_at AS s__created_at, s.updated_at AS s__updated_at, a.id AS a__id, a.user1_id AS a__user1_id, a.user2_id AS a__user2_id, a.estado AS a__estado FROM sf_guard_user s LEFT JOIN amigo_usuario a ON ((s. id = a.user2_id OU s.id = a.user1_id)) O 0 ((a.user2_id =? OU a.user1_id =?) ET À l'adresse >? ET COMME a.estado)

Si je prends cette clause phpmyadmin onglet SQL que je reçois cette erreur

1064 - Vous avez une erreur dans votre syntaxe SQL?; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de? OU a.user1_id =?) AND à l'adresse <>? ET a.estado LIKE?) LIMIT 0, 30 'à la ligne 1

Pourquoi je reçois cette erreur?

salutations

Javi

Répondre

2

La sortie inclut des espaces réservés dans la demande de recherche plutôt que des valeurs réelles. Vous devez remplacer les ? par les valeurs correctes lorsque vous l'exécutez dans phpMyAdmin. Avec Symfony en mode de développement, les valeurs que vous utilisez pour chaque requête sont affichées dans le panneau de requête de base de données accessible depuis la barre d'outils du mode dev en haut à droite de votre page, entre parenthèses après la requête elle-même.

+0

Merci! ---------- – ziiweb