Syntaxe SQL avec PHP

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 : Syntaxe SQL avec PHP

[Résolu]

par Invité » 26 févr. 2009, 23:03

Résolu

[RESOLU]

par Invité » 26 févr. 2009, 22:00

AH merci bcp voilà la raison

par thehawk » 26 févr. 2009, 20:03

enfin ca marche aussi nan ? :oops:

par Ryle » 26 févr. 2009, 20:02

d'où l'obligation d'utiliser les `` qui entoure le nom ca évite ce genre de souci ;)
D'où surtout, l'obligation de pas utiliser des mots clés réservés ! :x
Ca évite tout autant ce genre de soucis, et en plus ça fonctionne avec toutes les bases de données ;)

par thehawk » 26 févr. 2009, 18:48

d'où l'obligation d'utiliser les `` qui entoure le nom ca évite ce genre de souci ;)

par stopher » 26 févr. 2009, 14:50

Hi ,

Le problème vient simplement du fait que le nom "KEY" et un nom réservé en SQl

http://dev.mysql.com/doc/refman/5.0/fr/ ... words.html

:)


Ch.

par leclaude » 26 févr. 2009, 14:39

Bonjour,

J'ai pas tout compris dans ces démonstrations mais s'il s'agit de récupérer une entrée d'input pour sélectionner dans une table, personnellement j'utilise la méthode suivante:

Par exemple avec un input nommé 'KEY':

$requete = "SELECT * FROM XXX where ZZZ = '{$_POST['KEY']}' ....."

Cela permet d'utiliser directement les POST dans des requêtes.

C'est aussi valable pour des SESSIONS:
$requete = "SELECT * FROM XXX where ZZZ = '{$_SESSION['ce que l'on cherche']}....."

Je ne sais pas comment cela fonctionne mais à priori les accolades {} permettent de transformer la SESSION ou le POST en une variable banale compréhensible par SQL.

Salut
A bientôt

par thehawk » 26 févr. 2009, 11:59

Bizzare!!!

Et si tu fais, as- tu le key?
$aze= mysql_query("SELECT * FROM Amis  WHERE KEY=14");
	$donnees = mysql_fetch_assoc($aze);	
	echo $donnees["kEY"];	
J'ai eu deja des erreurs similaires , je m'en suis sorti par :
$aze= mysql_query("SELECT * FROM `Amis`  WHERE `KEY`=14");
	$donnees = mysql_fetch_assoc($aze);	
	echo $donnees["kEY"];	
Bonne journée Hawk

par rolusseum » 26 févr. 2009, 00:05

Bizzare!!!

Et si tu fais, as- tu le key?
$aze= mysql_query("SELECT * FROM Amis  WHERE KEY=14");
	$donnees = mysql_fetch_assoc($aze);	
	echo $donnees["kEY"];	

par sasuuke » 25 févr. 2009, 23:44

C'est pareil!

par rolusseum » 25 févr. 2009, 23:33

Et si tu mets en "dur" $key_post?
$aze= "DELETE from Amis WHERE KEY=14";

par sasuuke » 25 févr. 2009, 23:18

J'ai bien un int de $key
il me retourne 14
J'ai essayé votre syntaxe, et j'ai toujours la même erreur
J'ai aussi tenté comme ceci
$aze= "DELETE from Amis WHERE KEY=".$key_post; 

mais meme erreur
Erreur SQL !DELETE from Amis WHERE KEY=14
Erreur de syntaxe pr�s de 'KEY=14' � la ligne 1

par rolusseum » 25 févr. 2009, 23:07

Une des règles de vérification des données avant de faire une requête dans la bd est de typer les données.
Donc pour être certain d'avoir un integer:
$key_post=(int)$key_post;
Ensuite, concernant la "syntaxe
$aze= "DELETE from Amis WHERE KEY='".$key_post."' ";
mysql_query($aze) or die('Erreur SQL !'.$aze.'<br>'.mysql_error());
essaye plutôt
$aze= "DELETE from Amis WHERE KEY='$key_post'";

Syntaxe SQL avec PHP

par sasuuke » 25 févr. 2009, 22:45

Bonjour à tous,

J'ai un petit souci au niveau de la syntaxe sql

j'ai stocké ma clé primaire ds une variable que je vais utiliser dans mon formulaire
$fensupp = $data['KEY'] . "supp";
$key= substr($fensupp,0,strrpos($fensupp,"s"));


<form method="post" action="supp.php">
			   <br><input type="hidden" name="Key"  value="';?><?php echo $key; ?><?php echo'"/>
Dans ma page supp.php
$key_post = addslashes($_POST["Key"]);


$aze= "DELETE from Amis WHERE KEY='".$key_post."' ";
mysql_query($aze) or die('Erreur SQL !'.$aze.'<br>'.mysql_error());
Mais je rencontre ce problème
Erreur SQL !DELETE from Amis WHERE KEY='1'
Erreur de syntaxe pr�s de 'KEY='1'' � la ligne 1

Est ce une question de int et de string?
Comment enlever les ' ' pour avoir que 1

Merci