écrire sur une base de données

[Résolu]
Signaler
Messages postés
166
Date d'inscription
mercredi 27 juin 2007
Statut
Membre
Dernière intervention
31 mars 2014
-
Messages postés
166
Date d'inscription
mercredi 27 juin 2007
Statut
Membre
Dernière intervention
31 mars 2014
-
Lors de ma précédente question, j'ai voulu allé trop vite.
Donc, j'ai tout repris depuis le début en commençant par écrire un tout petit script qui devait me permettre d'écrire sur une table créé avec PhpMyAdmin

Voilà mes scripts puis après le résultat obtenu, avec des erreurs affichées:

fichier appel.html:

<HTML><HEAD>
<TITLE>Page d'accueil</TITLE>
</HEAD>

Renseignez les champs suivants:


<form action="realise.php" method="POST">
     
Prénom  
    
Nom      
     
Age        
 



</HTML>

fichier realise.php:

<?php

  $cxn=mysql_connect('localhost','','') or die("echec 1.");
  mysql_select_db('test',$cxn) or die('Erreur de selection '.mysql_error());
 
   foreach($_POST as $field => $value){
   
            $fields[]=$field;
            $values[]=$value;  
  }
   
  $fields_str=implode(",",$fields);
  $values_str=implode('","',$values);  
   
  $sql="INSERT INTO info";
  $sql.="(".$fields_str.")";
  $sql.=" VALUES ";
  $sql.="(".'"'.$values_str.")";
  $result=mysql_query($sql) or die("Requête INSERT en échec.");

?>

Ma base de données s'appelle bien 'test' et je teste les script sur mon ordi.

Après la soumission du formulaire, voilà ce qui s'affiche à l'écran:

Warning: mysql_connect(): Accès refusé pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) in c:\program files\easyphp1-8\www\login3.php on line 11
echec 1.

Voilà, donc pour l'instant il ne me sert à rien de vouloir faire un accés réservé pour membre alors que je n'arrive tout simplement pas à écrire sur une base de données

J'éspère que cette fois-ci quelqu'un pourra bien m'aider
Merci d'avance.

Signé Sagat

8 réponses

Messages postés
183
Date d'inscription
samedi 24 mars 2007
Statut
Membre
Dernière intervention
30 mars 2013

En local c'est :

 $host="localhost";
                  $user="root";
                  $password="";
                  $database="nom de ma base";
Messages postés
166
Date d'inscription
mercredi 27 juin 2007
Statut
Membre
Dernière intervention
31 mars 2014
1
Ooops => la table sur laquelle je veux écrire s'appelle bien 'info'

Signé Sagat
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
salut

  $cxn=mysql_connect('localhost','','') or die("echec 1.");

l'erreur est situee ici, tes parametres de connexions ne sont pas bons... on ne peut pas les connaitre a ta place...
Messages postés
183
Date d'inscription
samedi 24 mars 2007
Statut
Membre
Dernière intervention
30 mars 2013

Exactement il faut revoir tes paramètres de connexion qui ne sont pas bons. Va revoir ces derniers.
Messages postés
183
Date d'inscription
samedi 24 mars 2007
Statut
Membre
Dernière intervention
30 mars 2013

Je vois que tu n'as pas un nom d'utilisateur :
 $cxn=mysql_connect('localhost','nomutilisateur','') or die("echec 1.");
Messages postés
166
Date d'inscription
mercredi 27 juin 2007
Statut
Membre
Dernière intervention
31 mars 2014
1
Merci, je comprenais bien que mon problème venait de là.

Cependant, débutant en Php/MySql, je n'ai aucune idées de mes paramètres de connexion.
Je travaille en local, mes scripts sont situés dans le répertoire www de EasyPhp, et j'avais donné les paramètres que "Php et MySql pour les nuls" disait de mettre. A savoir :       
                  $host="localhost";
                  $user="";
                  $password="";
                  $database="nom de ma base";

Bref, si vous pouviez me donner le moyen de connaîtres ces paramètres, tout irait pour le mieux

Signé Sagat
Messages postés
166
Date d'inscription
mercredi 27 juin 2007
Statut
Membre
Dernière intervention
31 mars 2014
1
Merci spamito, c'est exactement ce que je venais de faire, et l'erreur précitée disparait.

Cependant, une autre erreur apparait:

fichier realise.php modifié:

<?php

  if(isset($_POST['nom']))   {   $nom=$_POST['nom'];}
  if(isset($_POST['prenom']))   {   $prenom=$_POST['prenom'];}
  if(isset($_POST['age']))    {  $age=$_POST['age'];}


 
  $cxn=mysql_connect('localhost','root','') or die("echec 1.");
  mysql_select_db('test',$cxn) or die('Erreur de selection '.mysql_error()); 
   
  $sql="INSERT INTO info (id,nom,prenom,age) VALUES ('','$nom','$prenom','$age')";
  
  $result=mysql_query($sql) or die("Requête INSERT en échec.");
?>

Et cette fois-ci, j'obtiens comme résultat  

Requête INSERT en échec.

So, je ne sais pas d'où vient cette fois le pb

Merci encore de m'aider

Signé Sagat
Messages postés
166
Date d'inscription
mercredi 27 juin 2007
Statut
Membre
Dernière intervention
31 mars 2014
1
Enfin, mon pb est résolu. Je ne sais comment d'ailleurs.

Bref, pour tous les débutants ayant acheté Php et MySql pour les nuls  sachez qu'ils vous faut attribuer à la variable $user la valeur 'root', sinon => prise de tête garanti.

Merci encore à tous ceux qui m'ont aider

Signé Sagat