Forum Programmation.php Requete Delete

Posté par  .
Étiquettes : aucune
0
10
déc.
2006
Bonjour à tous,
je lance une requete de supression qui est celle ci :
$mod= mysql_query("DELETE FROM ".$t['equipes']." WHERE $id =".$t['equipes']);
avec : echo mysql_error();

et j'obtiens ce message d'erreur: Unknown column 'Array' in 'where clause'
et la suppression ne ce fait pas ??

merci d'avance pour votre aide
  • # conseil

    Posté par  . Évalué à 2.

    si je peux te donner un conseil, passe toujours ta requête par une variable, c'est plus facile pour le debug...

    exemple :

    $req="delete.............";
    echo $req; // debug ...
    $mod= mysql_query($req);
    ...
  • # Requete Delete

    Posté par  . Évalué à 2.

    Salut
    $t semble être tableau multidimensionnel (2 minimum).
    $t est un tableau
    $t['equipes'] est aussi un tableau.

    Donc ta requête devrait plutôt ressembler à ça :
    $mod= mysql_query("DELETE FROM ".$t['equipes'][XXXX]." WHERE $id =".$t['equipes'][XXXX]);
    où $t['equipes'][XXXX] est une chaine de caractères.

    David.
    • [^] # Re: Requete Delete

      Posté par  . Évalué à 2.

      $t['equipes'] ou $id est un tableau, php renvois "Array" quand tu essais d'y accéder comme une chaine, donc ta requête donne ça:

      DELETE FROM Array WHERE $id =Array
      ou
      DELETE FROM xx WHERE Array =xx

      Quand tu n'as pas de ' autour d'une chaine, mysql prend ça comme un nom de champ, d'où le Unknown column 'Array'

      Donc vérifies le contenu de $t, ensuite filtre les variables que tu mets dans des requêtes mysql avec des intval() pour les entiers et des mysql_(real_)escape_string().

      Mets des ' autour des valeurs, et des ` autour des noms de champs.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.