Problème MYSQL

Petit nouveau ! | 1 Messages

29 mars 2016, 20:42

Bonjour j'ai un soucis pour faire un système de news ... j'obtiens une erreur mais je sais pas d'où elle vient , j'ai du mal à la localiser ... pouvez vous m'aider ?

Voici mon code :
<?php

	require "../config.php";
	mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
	mysql_select_db(DB_BDD);
	
	if(!empty($_POST)){
		extract($_POST);
		$sql="UPDATE news SET titre='$titre', contenu='$contenu' WHERE id=$id";
		$req = mysql_query($sql) or die('Erreur SQL !<br/>'.$sql.'<br/>'.mysql_error());
		echo "News modifiée";
		echo "<a href=\"index.php\">Revenir aux articles</a>";
		$_GET["id"]=$id;
	}
Mon erreur :
Erreur SQL !
UPDATE news SET titre='Fermeture', `contenu` ='Je ferme c'est nul lol' WHERE id=2
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 'est nul lol' WHERE id=2' at line 1
J'ai même une deuxième erreur ...
<?php

	require "../config.php";
	mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
	mysql_select_db(DB_BDD);
	
	extract($_POST);
	$sql="INSERT INTO news (titre,contenu) VALUES ('$titre','$contenu')";
	$req = mysql_query($sql) or die('Erreur SQL !<br/>'.$sql.'<br/>'.mysql_error());
	header ("Location: index.php");
	
?>
Erreur SQL !
INSERT INTO news (titre,contenu) VALUES ('Je t'aime','pas ')
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 'aime','pas ')' at line 1

Mammouth du PHP | 1029 Messages

30 mars 2016, 12:12

Bonjour,
Alors déjà les fonctions mysql sont obsolètes, il faut les remplacer par les fonctions mysqlI, le 'i' est important.

Vous avez deux fois la même erreur.

Vous passer vos textes entre quote et dans vos textes vous avez également des quotes (j'aime et c'est ), hors en SQL la quote signifie la fin de l’exécution du script.

Vous devez soit préparer vos requêtes, soit échapper vos textes.
Je vous laisse le plaisir de rechercher comment faire :)

MaitrePylos
L'expérience est la somme de toutes nos erreurs.