2012-07-05 34 views
6

Estoy usando el FOSFacebookBundle y el FOSUserBundle con Symfony2 para administrar a mis usuarios. Tengo todo funcionando bien a nivel local. Sin embargo, cuando empujé todo a mi entorno de ensayo, noté que no se persistió en el usuario (usando el administrador de entidad de doctrina) al registrarse.Se está preparando una declaración, pero no se ha ejecutado

Lo primero que verifiqué fue si podía persistir con el administrador de entidades, lo cual fue bien. Luego fui en y comprobado los registros y vi que la instrucción de inserción está ahí:

INSERT INTO user (username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expired, expires_at, confirmation_token, password_requested_at, roles, credentials_expired, credentials_expire_at, firstname, lastname, facebookID, date_of_birth, locale, gender, has_profile_pic, created_at, updated_at) 
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 
({"1":"1234","2":"1234","3":"[email protected]","4":"[email protected]","5":true,"6":"","7":"","8":null,"9":0,"10":false,"11":null,"12":null,"13":null,"14":["ROLE_FACEBOOK"],"15":0,"16":null,"17":"Mr","18":"Foo","19":"1234","20":{"date":"1986-12-09 00:00:00","timezone_type":3,"timezone":"PRC"},"21":"nl_NL","22":"male","23":1,"24":{"date":"2012-07-06 01:34:47","timezone_type":3,"timezone":"PRC"},"25":{"date":"2012-07-06 01:34:47","timezone_type":3,"timezone":"PRC"}}) 

Si se sustituyen los signos de interrogación, con los valores de la declaración preparada y emitir la consulta manualmente, todo funciona bien.

¿Alguien tiene alguna pista sobre lo que podría ser esto? También estaría muy contento con sugerencias sobre cómo depurar aún más esto, porque no sé dónde buscar después ...

¡Gracias de antemano!

ACTUALIZACIÓN:

tuve otro vistazo al registro de MySQL y me di cuenta de que se está preparando la instrucción INSERT, pero nunca ejecutado (a diferencia de la instrucción de selección). No puedo encontrar ningún error en el registro de errores. Aquí está el registro de mysql:

34 Prepare SELECT t0.username AS username1, t0.username_canonical AS username_canonical2, t0.email AS email3, t0.email_canonical AS email_canonical4, t0.enabled AS enabled5, t0.salt AS salt6, t0.password AS password7, t0.last_login AS last_login8, t0.locked AS locked9, t0.expired AS expired10, t0.expires_at AS expires_at11, t0.confirmation_token AS confirmation_token12, t0.password_requested_at AS password_requested_at13, t0.roles AS roles14, t0.credentials_expired AS credentials_expired15, t0.credentials_expire_at AS credentials_expire_at16, t0.id AS id17, t0.firstname AS firstname18, t0.lastname AS lastname19, t0.facebookID AS facebookID20, t0.date_of_birth AS date_of_birth21, t0.locale AS locale22, t0.gender AS gender23, t0.has_profile_pic AS has_profile_pic24, t0.created_at AS created_at25, t0.updated_at AS updated_at26 FROM user t0 WHERE t0.facebookID = ? 

34 Execute SELECT t0.username AS username1, t0.username_canonical AS username_canonical2, t0.email AS email3, t0.email_canonical AS email_canonical4, t0.enabled AS enabled5, t0.salt AS salt6, t0.password AS password7, t0.last_login AS last_login8, t0.locked AS locked9, t0.expired AS expired10, t0.expires_at AS expires_at11, t0.confirmation_token AS confirmation_token12, t0.password_requested_at AS password_requested_at13, t0.roles AS roles14, t0.credentials_expired AS credentials_expired15, t0.credentials_expire_at AS credentials_expire_at16, t0.id AS id17, t0.firstname AS firstname18, t0.lastname AS lastname19, t0.facebookID AS facebookID20, t0.date_of_birth AS date_of_birth21, t0.locale AS locale22, t0.gender AS gender23, t0.has_profile_pic AS has_profile_pic24, t0.created_at AS created_at25, t0.updated_at AS updated_at26 FROM user t0 WHERE t0.facebookID = '1234' 
34 Close stmt 

34 Query START TRANSACTION 
34 Prepare INSERT INTO user (username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expired, expires_at, confirmation_token, password_requested_at, roles, credentials_expired, credentials_expire_at, firstname, lastname, facebookID, date_of_birth, locale, gender, has_profile_pic, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 
34 Close stmt 
34 Query COMMIT 
34 Quit 

¿Alguna pista?

ACTUALIZACIÓN 2:

He estado tala algunos valores de retorno de la ejecución de las declaraciones PDO en el lib doctrina y resulta que tengo un valor de retorno normal (1) en mi dev ambiente. Sin embargo, obtengo no valor de retorno en mi entorno de producción. Parece otra pista, pero no sé qué hacer con ella.

Por cierto PDOStatement::errorCode devuelve 00000 (lo que indica que todo ha ido bien)

+0

¿Revisó los registros de Symfony? – drupality

+0

Sí, la instrucción de inserción anterior es del registro de Symfony. No se pudo encontrar nada más interesante. –

+0

¿Es posible que se produzca un error después de esta consulta, lo que hace que la transacción se revierta? Revise los registros de consulta de MySQL – arnaud576875

Respuesta

1

Puede haber un problema con las conexiones en pdo_mysql sobre los ajustes de producción. Compruébalo una vez. Dando respuesta según comment.

+0

¿Pero Symfony no debería lanzar una excepción en este caso? – Federkun

+0

@Laxus symfony no arrojará excepciones en producción – JamesHalsall

+0

No realmente ganado, pero visto como rcarver no responde, le otorgaré la recompensa :) –

Cuestiones relacionadas