ecrire une variable dans une base de donnée

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 : ecrire une variable dans une base de donnée

Re: ecrire une variable dans une base de donnée

par xTG » 13 sept. 2012, 09:04

Requête préparée et toujours rien mais pas d'erreur ?
Jettes alors un oeil au fichier error.log de PHP, ou bien actives le niveau d'erreur dans le php.ini

Concernant ton erreur, sans message d'erreur je pourrait te dire que tu en as fait plein... C'est pour cela que je t'ai redirigé vers les bonnes fonctions.
Pour ton dernier code il manque principalement la vérification des variables et leur protection.
De plus sans cette protection cela peut engendrer une erreur de syntaxe au sein de la requête SQL.

Re: ecrire une variable dans une base de donnée

par schim59 » 13 sept. 2012, 06:38

Peut etre addslashes(), certains caractères spéciaux peuvent faire échouer la requète.

Re: ecrire une variable dans une base de donnée

par babacool1960 » 12 sept. 2012, 22:13

[quote="xTG"]Tu aurais lu mon intervention que tu aurais ta réponse dans les exemples de la documentation.

j'ai fait ma base avec des requetes prepares, mais ca ne me dit toujours pas pourquoi mon code ne fonctionne pas;

et comme j'aime bien comptrendre;
et surtout savoir quelle betise j'ai faite pour ne pas la renouveler!!!

pascal

Re: ecrire une variable dans une base de donnée

par xTG » 12 sept. 2012, 19:55

Tu aurais lu mon intervention que tu aurais ta réponse dans les exemples de la documentation.
Ensuite la protection dans une requête se fait soit par une requête préparée (PDO::prepare() avec l'utilisation des fonctions d'injection associées) soit avec une fonction exec() mais en utilisant PDO::quote() sur les variables injectées pour les protéger.

Re: ecrire une variable dans une base de donnée

par babacool1960 » 12 sept. 2012, 18:45

en mettant:
<?php
	try
		{
			$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
		}
	catch(Exception $e)
		{
			die('Erreur : '.$e->getMessage());
		}
	$nom =" pascal";
	echo $nom;

$bdd->exec("INSERT INTO resultats(nom, description, auteur) VALUES(".$nom." \'triplettes\', \'finale\')");
	echo $nom;
?>
j'&i deja un premier resultat: je n'ai plus $nom dans ma base. Le probleme, maintenant, c'est que rien ne s'inscrit

pascal

Re: ecrire une variable dans une base de donnée

par schim59 » 12 sept. 2012, 09:29

Oui j ai pas parlé Sécurité dsl

Re: ecrire une variable dans une base de donnée

par xTG » 12 sept. 2012, 08:55

Eh oh hophophop ! Et les injections sql ?

Déjà le problème : interprétation de la variable.
Petit exemple avec commentaire indiquant le résultat :
$var = 'test';
echo 'Ceci est un $var'; // Ceci est un $var
echo "Ceci est un $var"; // Ceci est un test
echo 'Ceci est un ' . $var; // Ceci est un test
echo "Ceci est un " . $var; // ceci est un test
Ensuite la protection dans une requête se fait soit par une requête préparée (PDO::prepare() avec l'utilisation des fonctions d'injection associées) soit avec une fonction exec() mais en utilisant PDO::quote() sur les variables injectées pour les protéger.

Re: ecrire une variable dans une base de donnée

par schim59 » 12 sept. 2012, 08:25

Bonjour,
essais
 "INSERT INTO resultats(nom, description, auteur) VALUES(".$nom." \'triplettes\', \'finale\')');"
Bon codage.

ecrire une variable dans une base de donnée

par babacool1960 » 12 sept. 2012, 08:13

bonjour,

j'ai un fichier php
<?php
	try
		{
			$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
		}
	catch(Exception $e)
		{
			die('Erreur : '.$e->getMessage());
		}
	$nom =" pascal";
	echo $nom;
	$bdd->exec('INSERT INTO resultats(nom, description, auteur) VALUES(\'$nom\', \'triplettes\', \'finale\')');
	echo $nom;
?>
je voudrais avoir pascal dans ma base de données, mais je n'arrive a ecrire que $nom

comment faire ?