Symfony1 条令/symfony:phpMyAdmin/SQL选项卡中的getSqlQuery()输出

Symfony1 条令/symfony:phpMyAdmin/SQL选项卡中的getSqlQuery()输出,symfony1,doctrine,Symfony1,Doctrine,我已创建了此查询,该查询工作正常: $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)) ->andW

我已创建了此查询,该查询工作正常:

$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();
$q1=Doctrine\u Query::create()
->来自('Usuario u')
->leftJoin('u.AmigoUsuario a ON u.id=a.user2\u id或u.id=a.user1\u id')
->其中(“a.user2\u id=?或a.user1\u id=?”,数组($id,$id))
->andWhere(“u.id?”,$id)
->以及在哪里(“a.estado LIKE?”,1);
echo$q1->getSqlQuery();
对getSqlQuery的调用将输出以下子句:

选择s.id作为s\uu id,选择s.username作为 s__用户名,s算法为 s__算法,s.salt作为s__salt, s、 密码为s__密码,s处于活动状态 由于s\u处于活动状态,s.s\u超级管理为 s__是超级管理员,s.last_登录为 s\u上次登录,s.email\u地址为 电子邮件地址,s.nombre\U apellidos 作为s__nombre_apellidos,s.sexo作为 s__sexo,s.fecha_nac作为s__fecha_nac, s、 省作为s__省, s、 作为s__localidad的localidad, s、 fotografia作为s_uuFotografia, s、 化身为s__化身, s、 化身作为 s_u阿凡达u mensajes,s.在AS创建u s__创建于,s更新于 s__将a.id更新为a.id, a、 user1\u id作为一个user1\u id,一个user2\u id 作为__用户2_id,a.estado作为__estado 来自sf_guard_用户的左连接 amigo_usuario a ON((s.id=a.user2_id 或s.id=a.user1_id),其中 ((a.user2\u id=?或a.user1\u id=?) 还有s.id?和a.estado喜欢吗?)

如果我将该子句带到phpMyAdminSQL选项卡,则会出现此错误

1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用接近“”的正确语法?或者a.user1_id=?)和s.id?和a.estado LIKE?)第1行的0,30'限制 为什么我会犯这个错误

问候


Javi

输出在查询中包含占位符,而不是实际值。在phpMyAdmin中执行此操作时,需要用正确的值替换

在开发模式下使用Symfony,每个查询使用的值将显示在数据库查询面板中,该面板可从页面右上角的开发模式工具栏访问,并在查询本身后用括号括起来