views:

329

answers:

1

Hi,

i have created this query that works OK:

$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();

The calling to getSqlQuery outputs this clause:

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 OR s.id = a.user1_id)) WHERE ((a.user2_id = ? OR a.user1_id = ?) AND s.id <> ? AND a.estado LIKE ?)

If i take that clause to phpmyadmin SQL tab i get this error

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? OR a.user1_id = ?) AND s.id <> ? AND a.estado LIKE ?) LIMIT 0, 30' at line 1

Why i'm getting this error?

Regards

Javi

A: 

The output includes placeholders in the query rather than actual values. You need to replace the ?'s with the correct values when you execute this in phpMyAdmin.

Using Symfony in dev mode, the values you're using for each query are shown in the database query panel accessible from the dev mode toolbar top right of your page, enclosed in parentheses after the query itself.

richsage
Thanks! ----------