Probleme de Requete SQL

Wx8GameR
Invité n'ayant pas de compte PHPfrance

02 oct. 2013, 18:35

Bonjour a tous,

J'ai un petit soucis dans une de mes requête SQL, je m'explique j'aimerais mettre a jour certains champs d'une base de données mais il me renvoi un message d'erreur ! :cry:

Après de longues heures de recherche je n'ai toujours pas trouver l'origine de l'erreur c'est pourquoi je me décide enfin à vous solliciter !
Voila mon problème :

Dans un premier temps je redirige l'utilisateur avec un lien contenant 2 variables : le pseudo d'un autre utilisateur appelée 'pseudo' et la nature de la relation qu'ils entretiennent appelée 'nature' ! Voici comment ce présente mon lien :
<div class='notif'><a href='index.php?page=accepter&pseudo=<?php echo $invitation['pseudo_exp']; ?>&nature=<?php echo $invitation['nature'];?>'>Confirmer</a></div>
Jusqu'ici tout va bien quand je clique sur le lien je suis bien redirigé vers la page accepter.php et il reconnait bien les deux variables !
Sur cette page j’inclus ma page qui contient mes fonctions dans laquelle je créer cette fonction :
function update_membre1()
{
mysql_query("UPDATE users SET situation='{$_GET['nature']}',with='{$_GET['pseudo']}' WHERE pseudo='{$_SESSION['pseudo']}'") or die(mysql_error());
}

C'est ensuite que viens mon problème ; j'appel ma variable sur la page accepter.php et lorsqu'elle s’exécute cela ma renvoi un un message d'erreur sql :

"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 '='valeur de la variable pseudo récupérée par URL' WHERE pseudo='valeur de la variable pseudo récupérée par la SESSION en cours'' at line 1"

J'ai retourner le problème dans tous les sens et je n'ai trouvé aucune solution, j’espère que vous pourrez m'aider ! :priere:
Merci d'avance !
Wx8GameR

Mammouth du PHP | 2278 Messages

02 oct. 2013, 18:46

function update_membre1()
{
//mysql_query("UPDATE users SET situation='{$_GET['nature']}',with='{$_GET['pseudo']}' WHERE pseudo='{$_SESSION['pseudo']}'") or die(mysql_error());
$nature = $_GET['nature'];
$pseudo = $_GET['pseudo'];
$pseudo_sess = $_SESSION['pseudo'];
$requete = "UPDATE users SET situation='$nature', with='$pseudo' WHERE pseudo=$pseudo_sess'";'
mysql_query ($requete);
//en cas d'erreur décommenter ci-dessous et passer la requete dand phpmyadmin ou autre
//print "<br />$requete";
}

Au passage, il faut évoluer vers mysqli ou PDO
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Wx8GameR
Invité n'ayant pas de compte PHPfrance

02 oct. 2013, 19:44

Merci énormément !! :D
Pourquoi me dites vous :
Au passage, il faut évoluer vers mysqli ou PDO
?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

02 oct. 2013, 20:23

parce que l'extension mysql sera supprimée dans une future version et que cela fait plusieurs années que la doc officiel incite à migrer vers mysqli ;)


@+
Il en faut peu pour être heureux ......

Wx8GameR
Invité n'ayant pas de compte PHPfrance

02 oct. 2013, 21:08

Et quelles sont les differences ?
Merci

Eléphant du PHP | 79 Messages

03 oct. 2013, 02:23

L'objet PDO est trés simple à manipuler, offre de plus grosse sécurité, permet de travailler sur plusieurs type de base de données (mysql, oracle, autre).

Image

N'oublier pas notre ami à tous Manual :

http://php.net/manual/fr/book.pdo.php

Prenez le temps de lire toute cette page d'aide, elle vous fournira tous les éléments pour exploiter agréablement PDO.

Ciao