Page 1 sur 2

Ecrire dans une base SQL local

Posté : 11 févr. 2006, 13:33
par agité
Bonjour,

Je me met tout doucement au SQL et j'ai déjà de gros problèmes, je veux ajouter a ma base SQL via un formulaire (inscrire une nouvelle chanson) PHP.

j'ai ecrit ceci :
<?
require "connect.php";

$nom=$_GET['nom'];
$date=$_GET['date1']."/".$_GET['date2']."/".$_GET['date3'];
$genre=$_GET['genre'];
$artist=$_GET['artist'];

		$link = mysql_connect("localhost");
		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, date, genre, lien) VALUES (".$nom.", ".$date.", ".$genre.", ".$artist.")") ;
		mysql_close($link);
?>
Donc en fait quand je passe par mysql_connect j'ai toujours cette erreur :
Warning: mysql_connect(): Accès refusé pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) in c:\program files\easyphp1-8\www\ketalombre\creer.php on line 37
Alors que quand je passe sans il se connecte niquel grace au : require "connect.php";

Ce que je comprends pas c'est qu'a aucun moment j'ai changer le mot de passe root ni mis le nom ODBC ^^ donc je comprends pas ou il vas chercher tout sa !

Ensuite j'aimerais savoir si mon code est bon pour acceder a la base en local, est ce que c'est bien mysql_query qu'il faut utiliser ?

Je commence alors j'ai un peu de mal, merci de votre comprehension et aide, si vous ne comprenez pas quelque chose demandez moi, merci par avance !

Posté : 11 févr. 2006, 13:38
par Cyrano
Est-ce que la connexion ne serait pas déjà effectuée dans ton fichier connect.php ?

Posté : 11 févr. 2006, 13:41
par agité
si justement c'est le but du fichier que d'etablir la connection car sans il m'affiche cette erreur que j'ai beaucoup de mal a comprendre !

je vais tenter de detruire le fichier voir ...

Posté : 11 févr. 2006, 13:44
par agité
Non quand je supprime le fichier sa ne marche pas, en fait il faut absolument que je passe par celui ci pour pouvoir acceder a ma base de donnée donc je vois pas comment faire sans !

Surtout que cette erreur est incomprehensible pour moi !

Posté : 11 févr. 2006, 13:52
par Cyrano
Dans le code que tu nous montres plus haut, il y a ceci:
mysql_connect("localhost"); 
mysql_connect prend trois paramètres or tu n'en as mis qu'un seul, ce qui sous-entend que tu essayes de te connecter sans même un nom d'utilisateur. Regarde le code de ton fichier connect.php et compare avec ce code pour noter la différence.

Posté : 11 févr. 2006, 14:01
par agité
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 !

Posté : 11 févr. 2006, 14:18
par agité
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 ?

Posté : 11 févr. 2006, 14:24
par agité
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 ?

Posté : 11 févr. 2006, 14:28
par Truc
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:

Posté : 11 févr. 2006, 14:34
par agité
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:

Posté : 11 févr. 2006, 14:38
par Truc
(...) 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

Posté : 11 févr. 2006, 14:46
par agité
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 ...

Posté : 11 févr. 2006, 14:53
par Truc
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:

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

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

Posté : 11 févr. 2006, 15:20
par Cyrano
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 ^ ?