Ecrire dans une base SQL local

Mammouth du PHP | 965 Messages

11 févr. 2006, 13:33

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 !

Mammouth du PHP | 19672 Messages

11 févr. 2006, 13:38

Est-ce que la connexion ne serait pas déjà effectuée dans ton fichier connect.php ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 965 Messages

11 févr. 2006, 13:41

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 ...

Mammouth du PHP | 965 Messages

11 févr. 2006, 13:44

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 !

Mammouth du PHP | 19672 Messages

11 févr. 2006, 13:52

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 965 Messages

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 !

Mammouth du PHP | 965 Messages

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 ?

Mammouth du PHP | 965 Messages

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 ?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

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:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 965 Messages

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:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 965 Messages

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 ...

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

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:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 965 Messages

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

Mammouth du PHP | 19672 Messages

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 ^ ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: