[RESOLU] [Symfony2] Requête SQL avec createQueryBuilder()

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] [Symfony2] Requête SQL avec createQueryBuilder()

Re: [Symfony2] Requête SQL avec createQueryBuilder()

par Texicitys » 15 nov. 2012, 13:40

Au final j'ai décidé de partir sur un framework beaucoup plus simple, j'avais trop de problème avec symfony2. Et je déteste quand des choses ne fonctionnent pas sans que je ne sache pourquoi... (je ne parle pas pour ce problème en particulier, mais une accumulation). Merci en tout cas pour ton aide.

Re: [Symfony2] Requête SQL avec createQueryBuilder()

par Texicitys » 13 nov. 2012, 09:50

Hello !

Merci pour ta réponse. Je viens, hier soir, de réalisé que le problème venait bien de la je pense. C'est le fait que right et left soit réservé.
Je vais donc modifier tout ça..

Merci beaucoup pour ta réponse, je vous tiens au courant (mais je pense que ça vient de là).

Re: [Symfony2] Requête SQL avec createQueryBuilder()

par Yosh » 12 nov. 2012, 21:25

Essaye de récupérer la query et de la tester dans ton SGBD...

EDIT: pas vu la query ^^, et avec des parenthèse ? ce serait pas mieux ?
 SET right = (right + 2)
EDIT2: autant pour moi, il me semble que la plupart des SGBD utilise RIGHT comme mot réservé, non ? essaye en renommant ton champ.

[Symfony2] Requête SQL avec createQueryBuilder()

par Texicitys » 31 oct. 2012, 01:23

Bonjour à tous !

J'ai créer un formHandler pour un formulaire qui gérerait des domaines..

J'ai un problème dans les requêtes que j'envoie à la base de donnée. J'utilise createQueryBuilder pour gérer des modifications assez complexe..

Voici un bout de code de mon Handler :
<?php
switch ($mode) {
                case 'FA': // Insertion d'un fils ainé
// Limite sup.
                    $p = $em->createQueryBuilder()
                            ->update('CollaideDomainBundle:Domain', 'd')
                            ->set('d.right', 'd.right + 2')
                            ->where('d.right > :v')
                            ->setParameter('v', $bgp)
                            ->getQuery()
                            ->execute();

Lorsque ce code est exécuté, j'obtiens le message suivant :
An exception occurred while executing 'UPDATE Domain SET right = right + 2 WHERE right > ?' with params {"1":1}:

SQLSTATE[42000]: Syntax error or access violation: 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 'right = right + 2 WHERE right > 1' at line 1
500 Internal Server Error - DBALException

1 linked Exception: PDOException »
C'est vraiment bizarre, car c'est symfony2 qui gère la requête. Il manque les '' dans cette requête (pour qu'elle passe sans problème).

Merci d'avance si vous avez une idée pour corriger ce problème.