2017-12-15 10 views
0

ここでは、SQLに挿入する私のフォームコードであることはできません。PHPは - もう

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

そしてPHPの取り扱いデータは、私のデータベースのテーブルに挿入します。

<?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."')"); 
     ?> 

は、私は本当に時間のために試してみました別のスレッドでも検索されましたが、今までは何も手をつけられませんでした。

編集:私は最終的に問題の核心は、私は私は、このようにクエリは多分その場合には、それに対して実行し、anymomreを実行することはできません、SGBDで「ラボラトリー」テーブルのプロパティで何かを台無しだと思うました私は新しいテーブルを作成し、問題は実際に解決されます。

+1

挿入できないとはどういう意味ですか?何かエラーがありますか? – ArtOsi

+0

PDOを使用して 'prepared statements'の力を利用してSQLインジェクションを防止しないと、' $ bd - > exec' – hungrykoala

+0

の間のスペースを削除してみてください。 – RamRaider

答えて

-2

フォームから=ロールを削除提出=入力タイプ=ボタン値のボタンを変更するフォームを試してみて、$ BD間のスペースを削除する - これが機能するために使用した場合> execの

0

、今あなたなしませんそれに何か変更を加えた場合は、MySQLで自動インクリメントされた主キーがtinyintなどと定義されているかどうかを確認する必要があります。

このタイプの最大数に達すると[tinyintの256個の値、smallintの65536個の値など]、そのテーブルには何も追加できません。

フィールドをone-upper型として定義するだけで済みますので、この問題に対する修正は非常に簡単です。例:tinyintの場合は、smallintに行きます。

また、値を署名する必要があるかどうかを確認し、署名されていない場合は署名されていないボックスを確認してください。また、将来の計画を立てるには、あなたの使用状況に応じて、テーブルがかなり不器用になる可能性があります。

+0

私のプライマリキーは確かに自動インクリメントされたものですが、intとして定義されており、天文学的数字にも達していないと思います。最後に登録されたIDは55です。 – hmizou

+0

実際のクエリの出力を投稿できますか? –

+0

"エコー"をラボに挿入する(nom、responsable、mail、mdp)VALUES( '"。$ labo。"'、 '"。$ nom。"'、 '"。$ mail。"'、 '"。$ –