2017-12-15 1 views
0

Hier ist meine Form Code:Php - Kann nicht in SQL einfügen mehr

<form action="inscription_smmar2.php" method="post" class="form-horizontal" role="form"> 
       <div class="form-group"> 
        <label for="nom" class="col-sm-2 control-label">Nom&Prénom</label> 
        <div class="col-sm-10"> 
         <input type="text" class="form-control" id="nom" name="nom" placeholder="Nom&Prénom"> 
        </div> 
       </div> 
       <div class="form-group"> 
        <label for="labo" class="col-sm-2 control-label">Laboratoire</label> 
        <div class="col-sm-10"> 
         <input type="text" class="form-control" id="labo" name="labo" placeholder="Nom du Laboratoire"> 
        </div> 
       </div> 
       <div class="form-group"> 
        <label for="email" class="col-sm-2 control-label">Mail</label> 
        <div class="col-sm-10"> 
         <input type="mail" class="form-control" id="email" name="email" placeholder="mail"> 
        </div> 
       </div> 
       <div class="form-group"> 
        <label for="pass" class="col-sm-2 control-label">Mot de Passe</label> 
        <div class="col-sm-10"> 
         <input type="password" class="form-control" id="pass" name="pass"> 
        </div> 
       </div> 
       <div class="form-group"> 
        <div class="col-sm-offset-2 col-sm-10"> 
        <button name="submit_m" type="submit" class="btn btn-primary"> <b>Valider</b> </button> 
        </div> 
       </div> 
      </form> 

Und dann die PHP-Handling Daten in Tabelle einfügen meiner Datenbank suchen:

<?php session_start(); 
     $nom = $_POST['nom']; 
     $labo = $_POST['labo']; 
     $mail = $_POST['email']; 
     $mdp = $_POST['pass']; 

     echo $mdp."; ".$nom; 
     try{ 
      $bd = new PDO('mysql:host=localhost;port=3306;dbname=cl54-smad','cl54-smad','s/Cdq-!N-'); 
      }catch(Exception $ex){ 
       echo $ex; 
      } 
     $req = $bd -> exec("insert into laboratoire(nom, responsable, mail, mdp) VALUES('".$labo."', '".$nom."', '".$mail."', '".$mdp."')"); 
     ?> 

ich stundenlang wirklich versucht und auch in verschiedenen Threads gesucht, konnte aber bis jetzt nichts finden.

bearbeiten: Ich fand schließlich der Kern des Problems, ich glaube ich etwas mit den „Laboratoire“ Tabelleneigenschaften in der SGBD verwirrte, so vielleicht die Abfragen nicht und anymomre für sie in diesem Fall ausgeführt durchgeführt werden können Ich habe eine neue Tabelle erstellt und das Problem ist gelöst.

+1

Was meinst du kann nicht einfügen? Haben Sie Fehler? – ArtOsi

+0

Versuchen Sie, Leerzeichen zwischen '$ bd -> exec' – hungrykoala

+0

zu entfernen, wenn Sie PDO verwenden, warum nicht die Macht von' prepared statements' nutzen und sql injection verhindern? – RamRaider

Antwort

-2

versuchen, die Taste input type = Ändern Taste Wert = einreichen entfernen Sie die Rolle = Form aus der Form und entfernen Sie die Räume zwischen $ bd -> exec

0

Wenn verwendet und jetzt nicht mehr funktionieren, ohne dass Sie Wenn Sie Änderungen daran vornehmen, sollten Sie überprüfen, ob Sie in der MySQL-Datenbank keinen automatisch inkrementierten Primärschlüssel haben, der als tinyint oder so ähnlich definiert ist.

Wenn die Anzahl die maximale Grenze für diesen Typ erreicht [256 Werte für tinyint, 65536 für smallint und so weiter], können Sie dieser Tabelle nichts hinzufügen.

Die Lösung für dieses Problem sollte ziemlich einfach sein, da Sie das Feld nur als einen oberen Typ definieren müssen. zB: wenn es tinyint ist, gehen Sie für smallint.

Überprüfen Sie auch, ob Sie die Werte signieren müssen und wenn nicht, markieren Sie das Feld ohne Vorzeichen. Planen Sie auch für die Zukunft, da Tabellen je nach Nutzung recht schnell ausgefüllt werden können.

+0

Mein Primärschlüssel ist in der Tat ein autoincremened, aber es ist als ein int definiert und ich glaube nicht, dass es eine astronomische Zahl erreicht. Die letzte regited ID ist gleich 55. – hmizou

+0

Können Sie die Ausgabe einer tatsächlichen Abfrage veröffentlichen? –

+0

Verwenden Sie "Echo" Einfügen in Laboratoire (nom, responsable, mail, mdp) Werte ('". $ Labo."', '". $ Nom."', '". $ Mail."', '". $ mdp. "')"; 'um es auf dem Bildschirm zu drucken –

Verwandte Themen