Impossible d'écrire dans la BDD

Eléphanteau du PHP | 46 Messages

15 mai 2012, 22:03

Bonjour !
J'aurais un petit souci que je n'arrive pas à résoudre. Je suis débutant en PHP et je voudrais écrire dans la base de donnée mais je n'y arrive pas je ne comprend pas.
J'ai un script pour me connecté au serveur et selectionner la base de donnée tout çà marche mais quand je veux écrire dedans avec ce code là

if(isset($_POST['bouton']))
{
$sql = 'INSERT INTO exemple SET test = "1234"';
}

j'ai essayé avec un autre code pour écrire (SdZero) dans la bdd et ca marche parfaitement. Alors je ne comprend pas pourquoi avec "$sql" ça ne fonctionne pas, où est mon erreur, qu'ai-je oublié ? :(

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

15 mai 2012, 23:28

salut,


$sql est une chaine de caractère il faut l'utiliser sinon ben c'est comme regarder un violon et dire je comprend pas j'entend rien :)

un cours sur la chose http://www.lephpfacile.com/cours/14-ins ... votre-base

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

Eléphanteau du PHP | 46 Messages

16 mai 2012, 16:38

J'étais persuadé qu'il me manquait quelque chose dans ce genre là. Merci beaucoup d'avoir éclairé ma lanterne, j'aurais sans doute dû chercher un peu plus :x désolé

ViPHP
AB
ViPHP | 5818 Messages

16 mai 2012, 17:49

Il y a un oubli dans le code du lien que t'a donné moogli

Il faut toujours utiliser mysql_real_escape_string quand on utilise des données provenant de l'extérieur (par exemple $_POST ou $_GET) car elles peuvent contenir du code dangereux.

Les requêtes du dernier exemple du lien devraient donc ressembler à ceci :
$sql = 'SELECT numero FROM liste_proprietaire WHERE nom = "'.mysql_real_escape_string($_POST['proprio']).'"';
//...
$sql = 'INSERT INTO liste_disque VALUES("'.$data['numero'].'", "'.mysql_real_escape_string($_POST['interprete']).'", "'.mysql_real_escape_string($_POST['titre']).'")';