Probleme SQL-PHP

Répondre
nonoche
le 06/10/2004 à 17:29
nonoche
Bonjour, j'ai quelques petits problèmes dernièrement sur free en php et sql. J'ai testé préalablement le tout à l'aide easyphp qui ne me rapporte aucun problème. Voici mon code et les problemes:

CODE 1:

$sql2= "INSERT INTO jeux (login) VALUES ('$lognew')";
$query2 = mysql_query ($sql2);
mysql_free_result ($query2);
mysql_close();

PROBLEME 1:

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /var/www/free.fr/9/7/ffjogg/bdd/inscription.php on line 102


CODE 2 :

header('Location: gestion_items.php?do=beg');

PROBLEME 2 :

Warning: Cannot modify header information - headers already sent by (output started at /var/www/free.fr/9/7/ffjogg/bdd/inscription.php:101) in /var/www/free.fr/9/7/ffjogg/bdd/inscription.php on line 104
LA GLOBULE
le 06/10/2004 à 17:36
LA GLOBULE
Pour le code 1, que ce soit chez free ou sous easyphp, tu devrais avoir une erreur.

Voici une correction :

<?php
// la il faut mettre les quotes au bon endroit
$sql2= 'INSERT INTO jeux (login) VALUES ("'.$lognew.'")';
// toujours faire des mysql_error pour voir les erreurs retournés par MySQL, si il y en a
$query2 = mysql_query ($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
mysql_free_result ($query2);
mysql_close();
?>


Pour le code 2, tu dois surement faire un echo ou afficher de l'html avant ton header (je le rappelle, on ne doit jamais faire le moindre echo ou afficher de l'html avant de faire un header).
nonoche
le 06/10/2004 à 17:43
nonoche
Merci. Mais je ne suis pas sur de voir mon erreur pour le code 1, c'est jsute ca: ("'.$lognew.'") ?

Merci
zebden
le 06/10/2004 à 17:48
zebden
Pour mysql_free_result() deja ca marche pas avec les requetes de type insert .. + d'infos dans le manuel.
Ensuite euh j'ai pas regardé , deux sec...
zebdinou pour les intimes / Blog : http://www.zebden.fr
zebden
le 06/10/2004 à 17:48
zebden
so :

Pour le code 2, tu dois surement faire un echo ou afficher de l'html avant ton header (je le rappelle, on ne doit jamais faire le moindre echo ou afficher de l'html avant de faire un header).


Pas mieux ^^
zebdinou pour les intimes / Blog : http://www.zebden.fr
LA GLOBULE
le 06/10/2004 à 17:49
LA GLOBULE
Ah oui MDR :)

zebden a raison, pas de mysql_free_result sur les insert, update, delete.

Sinon oui l'erreur venait des quotes.
zebden
le 06/10/2004 à 17:51
zebden
Nope puisque la requete est delimitée par des guillemets et la chaine par des quotes et comme les vars sont interprétes dans une chaine entre guillemets ( Vous me suivez ? moi je me suis deja perdu ) bref ca devait passer comme ecrit la premiere fois mais c'est mieux de faire comme glob t'as dis..
zebdinou pour les intimes / Blog : http://www.zebden.fr
LA GLOBULE
le 06/10/2004 à 17:53
LA GLOBULE
Crotte, encore une fois, zebden a raison.

SAUF ! SAUF le cas ou la chaine de caractere contient un ', et la, toute la chaine ne rentre pas dans la base.

Remarque, avec ma technique, ca revient au meme puisque si un " se trouve dans la chaine, elle sera aussi coupée.

Bon, j'vais me coucher, en ce moment, j'arrete pas de faire des sites oueb, et ca me nique le cerveau...

PS : pour eviter ce coupage de chaine, addslahses avant l'insertion dans la base, et stripslashes à l'affichage.

[Message modifié le 06/10/2004 à 17:54 par LA GLOBULE]
zebden
le 06/10/2004 à 17:55
zebden
et si ya magic_quote ?

Une biere ? :D
zebdinou pour les intimes / Blog : http://www.zebden.fr
Répondre
LoadingChargement en cours