Ecrire dans une base SQL local

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 dans une base SQL local

par agité » 11 févr. 2006, 15:32

en effet le script marche maintenant, merci beaucoup Cyrano.

Je vais passer a la suite maintenant !

respect !

par Cyrano » 11 févr. 2006, 15:30

Pourquoi écrire deux fois la requête avec une seconde requête toujours fausse ??
$sql="INSERT INTO art (nom,dâte,genre,lien) VALUES ('".$nom."','".$date."','".$genre."','".$artist."')";

        $ecrire = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
Essaye comme ceci.

par agité » 11 févr. 2006, 15:25

Excuse moi Cyrano.

Alors le message est maintenant :

Code : Tout sélectionner

INSERT INTO art (nom,dâte,genre,lien) VALUES ('artiste','15/54/5498','pouet','Bonjour') Champ 'artiste' inconnu dans field list
Il ajoute donc bien les ' mais l'erreur semble être la même j'ai tester en changeant le nom toujours rien, je me disais vu le nom de l'erreur que sa pouvait venir du formulaire mais non puisqu'il affiche bien le nom.
Est ce que c'est clair ?

[EDIT]

J'ai rajouter ceci en fait au code :

$sql="INSERT INTO art (nom,dâte,genre,lien) VALUES ('".$nom."','".$date."','".$genre."','".$artist."')";

$ecrire = mysql_query("INSERT INTO art (nom,dâte,genre,lien) VALUES (".$nom.",".$date.",".$genre.",".$artist.")") or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
et retirer ce que j'avais mis precedemment !

par Cyrano » 11 févr. 2006, 15:23

"rien y fait" : est-ce que le message d'erreur est toujours le même ? ça me surprendrait beaucoup :-k

Argumente tes questions, on ne devine pas.

par agité » 11 févr. 2006, 15:21

il y a bien un accent circonflexe et j'avais déjà fais le test en mettant des ' autour des variables mais rien n'y fait :(

par Cyrano » 11 févr. 2006, 15:20

Et si tu metais des apostrophes pour encadrer les chaines de caractère ?
$sql="INSERT INTO art (nom,dâte,genre,lien) VALUES ('".$nom."', '".$date."', '".$genre."', '".$artist."')";
J'ai un doute sur le nom de champ dâte : ce ne serait pas date sans le ^ ?

par agité » 11 févr. 2006, 15:07

Code : Tout sélectionner

Erreur SQL ! INSERT INTO art (nom,dâte,genre,lien) VALUES (artiste,15/54/5498,pouet,Bonjour) Champ 'artiste' inconnu dans field list
sachant que 'artiste' = $nom

par Truc » 11 févr. 2006, 14:53

as tu fait des tests ?

affichage des variables retournées ? => echo();

ajouté un message d'erreur à l'exécution ?
$sql="INSERT INTO art (nom,dâte,genre,lien) VALUES (".$nom.",".$date.",".$genre.",".$artist.")";

$ecrire = mysql_query() or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
Ps:@ Cyrano je suis juste intervenu en trouble fête hein :wink:

par agité » 11 févr. 2006, 14:46

J'ai tout remplacer dans le formulaire c'est en method POST et sur le script php :
$nom=$_POST['nom'];
$date=$_POST['date1']."/".$_POST['date2']."/".$_POST['date3'];
$genre=$_POST['genre'];
$artist=$_POST['artist']
Toujours rien ne s'inscrit dans ma base de donnée ...

par Truc » 11 févr. 2006, 14:38

(...) mais sans il m'indique toujours cette utilisateur que je connais pas
hé ? quel utilisateur ? ODBC ?
certainement du au faite que tu n'avais pas préciser d'utilisateur avec cette ligne.
$link = mysql_connect("localhost");
ok pour les varaibles mais si elles viennent d'un formulaire, je trouve que c'est plus propore de passer par POST

par agité » 11 févr. 2006, 14:34

Oui en fait tu as raison je viens de virer les donné et remettre le fichier mais je sais pas sa ma marquait des erreur jusque la ^^

Bref sa a l'air de marcher mais sans il m'indique toujours cette utilisateur que je connais pas quand aux variables elles viennent de la :
$nom=$_GET['nom'];
$date=$_GET['date1']."/".$_GET['date2']."/".$_GET['date3'];
$genre=$_GET['genre'];
$artist=$_GET['artist'];
en fait j'ai passer un formulaire en GET pour ensuite inscrire ce qu'il ya dedans dans ma base de donnée, le procédé n'est pas bon ? :roll:

par Truc » 11 févr. 2006, 14:28

Il n'y a peut être rien a y écrire ?

les variables $nom, $date, $genre, $artist viennent d'où ?

et pourquoi te faire ch... (excuse moi hein) mais c'est idiot d'avoir un fichier de connexion et de vouloir le virer pour mettre les données dans chaque fichier séparément ou tu auras besoin de te connecter.

j'ai peut être loupé un interet majeur :roll:

par agité » 11 févr. 2006, 14:24

même sans le require "connect.php"; sa marche apparement, je comprends pas pourquoi maintenant il m'inscrit rien dans la base de donnée !

une idée ?

par agité » 11 févr. 2006, 14:18

alors comme sa :

require "connect.php";


		$link = mysql_connect("localhost", "root", "");
		if (! $link)
		die("Couldn't connect to MySQL");
		mysql_select_db('son' , $link)
		or die("Couldn't open $db: ".mysql_error());
		$ecrire = mysql_query("INSERT INTO art (nom,dâte,genre,lien) VALUES (".$nom.",".$date.",".$genre.",".$artist.")") ;
		mysql_close($link);

sa passe appareemnt plus de message d'erreur par contre il n'inscrit rien dans la table ! je fais comment maintenant ?

par agité » 11 févr. 2006, 14:01

connect php :
<?
	$serveur="localhost";
	$user="root";
	$password="";
	$base="son";

	$connexion = mysql_connect($serveur,$user,$password);
	$db = mysql_select_db($base, $connexion);
?>
donc j'ai retirer sa et a la place :


		$db = mysql_select_db('art');
		$link = mysql_connect("localhost", "root", "");
		if (! $link)
		die("Couldn't connect to MySQL");
		mysql_select_db($db , $link)
		or die("Couldn't open $db: ".mysql_error());
		$ecrire = mysql_query("INSERT INTO `art` (nom,dâte,genre,lien) VALUES (".$nom.",".$date.",".$genre.",".$artist.")") ;
		mysql_close($link);
du moment que j'accede pas a la base de donnée tout vas bien mais c'est quand il essaye de se connecter qu'il me met ce message la !