Base de donnée introuvable

Bonjour a tous j ai un probleme qui me carcasse fort longtemps c est a dire:
sur mon site :http://aaronnapster.byethost22.com/nous.php ,j ai un formulaire qui refuse de s auto-mémoriser dans ma base de donnée sur le serveur voici le message d erreur qu il affiche:Erreur : SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2).

s'il vous plait voici mes codes du formulaire:

code du formulaire

<div align=center>

<form method="POST" action="envoiformulaire.php">

<table>

<tr><td>nom:</td>
<td><input type="text" name="nom" size=30></td></tr>
<tr><td>email:</td>
<td><input type="text" name="email" size=30></td></tr>
<tr><td>sujet :</td>
<td><input type="text" name="subjet" size=30></td></tr>
<tr><td colspan=2>message:<br>
<textarea COLS=50 ROWS=6 name=msg> </textarea>
</td></tr>
</table>

<br> <input type="submit" value="Envoyer"/> _
<input type="reset" value="effacer"/>

</form>

</div>

code qui traite l envoi du formulaire

<?php
// Connexion à la base de données
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname= baseformulaire', 'root','', $pdo_options);

// Insertion du formulaire à l'aide d'une requête préparée

$req = $bdd->prepare('INSERT INTO baseformulaire (nom,email,sujet,message) VALUES(?,?,?,?)');
$req->execute(array($_POST['nom'],$_POST['email'],$_POST['sujet'],$_POST['message']));

// Redirection du visiteur vers la page livredor
header('Location:ok.php');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>

aidez s il vous plait je galère fort......



--
aaronnapster

8 réponses

  1. salut,
    avant de chercher si c'est l'enregistrement qui ne marche pas est ce que ta connexion à mysql fonctionne.
    - tout d'abord moi je n'aime pas cette programmation objet pour mysql (PDO), est ce qu'elle est activée sur le serveur ?
    essai de faire un simple mysql_connect
    -cela peut être passager, le serveur ayant une surcharge de connexion.
    1. bonjour revoici mes codes:

      <div align=center>

      <form method="POST" action="envoiformulaire.php">

      <table>

      <tr><td>nom:</td>
      <td><input type="text" name="nom" size=30></td></tr>
      <tr><td>email:</td>
      <td><input type="text" name="email" size=30></td></tr>
      <tr><td>sujet :</td>
      <td><input type="text" name="subjet" size=30></td></tr>
      <tr><td colspan=2>message:<br>
      <textarea COLS=50 ROWS=6 name=msg> </textarea>
      </td></tr>
      </table>

      <br> <input type="submit" value="Envoyer"/> _
      <input type="reset" value="effacer"/>

      </form>

      </div>

      php

      <?php
      //connexion a la base de donnée

      mysql_connect("localhost","root"," ");
      mysql_select_db("baseformulaire");

      //recuperation des donnée

      $nom=$_POST['nom'];
      $email=$_POST['email'];
      $sujet=$_POST['sujet'];
      $message=$_POST['message'];

      {
      mysql_query("INSERT INTO baseformulaire (id,nom,email,sujet,message) VALUES (",'$nom','$email','$sujet','$message')");

      //On ferme la connexion

      mysql_close();

      echo"<div align='center'>";
      echo"<font face='Verdana' size='3' >vôtre requête a bien été inséré !</font>";
      echo"</div>";

      }

      ?>

      1. Le mot de passe est un espace ou il n'y a pas de mot de passe?

        mysql_connect("localhost","root"," "); 


        test avec
        mysql_connect("localhost","root",""); 


        Est ce un problème de configuration serveur ? Vérifie mysql-server .

        Code dans Notepad++ parce que pour ta requête tu as des problème de syntaxe.

        www.me-too.fr
        1. voici le nouveau message d'erreur :Parse error: syntax error, unexpected in C:\Documents and Settings\Administrateur\Bureau\web\envoiformulaire.php on line 16

          je pense que sa doit être un problème de config de MySQL car dans la partie des noms des bases le fichier standard(MySQL) ni est pas.
          aidez moi

          aaronnapster
          1. Paste your code !
            Post ton code !
            Avec les numéros de lignes!

            C'est une erreur php une virgule ou une quote qui est pas bien là où elle est.

            www.me-too.fr
            1. le voici:

              <?php
              //connexion a la base de donnée

              mysql_connect("localhost","root","");
              mysql_select_db("baseformulaire");

              //recuperation des donnée

              $nom=$_POST['nom'];
              $email=$_POST['email'];
              $sujet=$_POST['sujet'];
              $message=$_POST['message'];

              {
              mysql_query("INSERT INTO baseformulaire(id,nom,email,sujet,message) VALUES ("",'$nom','$email','$sujet','$message')");

              //On ferme la connexion

              mysql_close();

              echo"<div align='center'>";
              echo"<font face='Verdana' size='3' >vôtre requête a bien été inséré !</font>";
              echo"</div>";

              }

              ?>

              copie le dans Notepad ++ pou voir

              aaronnapster
              1. fait une bonne concaténation des chaines au niveau du mysql_query. Je preferes un truc du genre
                mysql_query("INSERT INTO baseformulaire(id,nom,email,sujet,message) VALUES ('','".$nom."','".$email."','".$sujet."','".$message."')");
                mais tu n'as pas besoin de faire comme moi car le problème provient du " " devrait etre ' ' au niveau de la premier valeur à insérer (VALUES)