2017-05-18 13 views
0

私は単純なHTMLフォームとPHPコードを使用してSQLデータベースにデータを挿入しました。 しかし、正しく動作していません。私が望む場所にデータを格納していません。同様に、 "Name"に "Name in Bangla"を置き、 "position2"に "School"を配置しています。 これを行うにはどうすればいいですか?コードに間違いはありますか?なぜmysql INSERTが正しく動作しないのですか?

HTMLコード:

<form name="information_form" enctype="multipart/form-data" method="post" action="process-new-member.php"> 
     <center> 
       <table class="controls" > 
         <tr> 
          <td>Unique ID:</td> 
          <td><input type="number" name="id" placeholder="Unique ID Number"> 
         </tr> 
         <tr> 
          <td>Name:</td> 
          <td><input type="text" name="name" placeholder="Write Full Name"> 
         </tr> 
         <tr> 
          <td>Name in Bangla:</td> 
          <td><input type="text" name="namebangla" placeholder="Write Full Name in বাংলা"> 
         </tr> 
         <tr> 
           <td>Image</td> 
           <td><input name="img" type="file"></td> 
          </tr> 
         <tr> 
          <td>Father's Name:</td> 
          <td><input type="text" name="father" placeholder="Father's name"> 
         </tr> 
         <tr> 
          <td>Mother's Name:</td> 
          <td><input type="text" name="mother" placeholder="Mother's name"> 
         </tr> 
         <tr> 
          <td>Date of Birth:</td> 
          <td>  
            <input class="inputnumber" type="number" name="dobDATE" placeholder="Date" style="max-width: 46px;"> 
            <input class="inputnumber" type="number" name="dobMONTH" placeholder="Month" style="max-width: 60px;"> 
            <input class="inputnumber" type="number" name="dobYEAR" placeholder="Year" style="max-width: 57px;"> 
          </td> 
         </tr> 
         <tr> 
           <td>Facebook ID: </td> 
           <td><input type="text" maxlength="100" name="fbid" placeholder="Write Username or ID Number"></td> 
         </tr> 
         <tr> 
           <td>Email: </td> 
           <td><input type="email" name="email" maxlength="100" placeholder="Write Email Address"></td> 
         </tr> 
         <tr> 
           <td>Contact No: </td> 
           <td>+880<input type="number" name="contact" maxlength="10" placeholder="Write Personal Phone No."></td> 
         </tr> 
         <tr> 
           <td>Emergency Contact No: </td> 
           <td>+880<input type="number" name="Econtact" maxlength="10" placeholder="Write Emergency Phone No."></td> 
         </tr> 
         <tr> 
           <td>Gender: </td> 
           <td> 
            <select name="sex" > 
             <option value="male">Male</option> 
             <option value="female">Female</option> 
            </select> 
            </td> 
         </tr> 

         <tr> 
           <td>Editor Status: </td> 
           <td> 
            <select name="editorstatus" > 
             <option value="0">No</option> 
             <option value="1">Yes</option> 
            </select> 
            </td> 
         </tr> 

         <tr> 
          <td>Present Address:</td> 
          <td><input type="text" name="presentAdd" placeholder="Write Present Address"> 
         </tr> 
         <tr> 
          <td>Permanent Address:</td> 
          <td><input type="text" name="permanentAdd" placeholder="Write Permanent Address"> 
         </tr> 
         <tr> 
          <td>Position: </td> 
          <td><input type="text" name="position" placeholder="Write Position in Rupok"></td> 
         </tr> 
         <tr> 
          <td>Secondary Position: </td> 
          <td><input type="text" name="position2" placeholder="Write Secondary Position"></td> 
         </tr> 
         </br> 

         <tr><td><h2>Educational Infos:</h2></td></tr> 

         <tr> 
          <td>School: </td> 
          <td><input type="text" name="school" placeholder="Write School Name"></td> 
         </tr> 
         <tr> 
          <td>College: </td> 
          <td><input type="text" name="college" placeholder="Write College Name"></td> 
         </tr> 
         <tr> 
          <td>Pass Years :</td> 
          <td>  
            <input class="inputnumber" min="2000" max="2040" type="number" name="jscYear" placeholder="JSC" style="max-width: 46px;"> 
            <input class="inputnumber" min="2000" max="2040" type="number" name="sscYear" placeholder="SSC" style="max-width: 60px;"> 
            <input class="inputnumber" min="2000" max="2040" type="number" name="hscYear" placeholder="HSC" style="max-width: 57px;"> 
          </td> 
         </tr> 

         <tr><td><h2>Others Infos:</h2></td></tr> 

         <tr> 
          <td>Personal Skills: </td> 
          <td> 
           <textarea name="PersonalSkills" placeholder="Write down skills seperating by Comas"></textarea> 
          </td> 
         </tr> 

       </table> 
     </center> 

     </br> 

     <center> 
     <button type="submit">Submit Data</button> 
     </center 

    </form> 

、ここでは、PHPコード:

<?php 

$uploaddir = '../../img/members/'; 
$uploadfile = $uploaddir . basename($_FILES['img']['name']); 
if (move_uploaded_file($_FILES['img']['tmp_name'], $uploadfile)) { 
    echo "File is valid, and was successfully uploaded.\n"; 
} else { 
    echo "Upload failed"; 
} 

require('connect_db.php'); 

$id=$_POST['id']; 
$name=$_POST['name']; 
$namebangla=$_POST['namebangla']; 
$pic = $_FILES['img']['name']; 
$father=$_POST['father']; 
$mother=$_POST['mother']; 
$dobDATE=$_POST['dobDATE']; 
$dobMONTH=$_POST['dobMONTH']; 
$dobYEAR=$_POST['dobYEAR']; 
$fbid=$_POST['fbid']; 
$email=$_POST['email']; 
$presentAdd=$_POST['presentAdd']; 
$permanentAdd=$_POST['permanentAdd']; 
$sex=$_POST['sex']; 
$contact=$_POST['contact']; 
$Econtact=$_POST['Econtact']; 
$position=$_POST['position']; 
$position2=$_POST['position2']; 
$school=$_POST['school']; 
$college=$_POST['college']; 
$jscYear=$_POST['jscYear']; 
$sscYear=$_POST['sscYear']; 
$hscYear=$_POST['hscYear']; 
$editor=$_POST['editorstatus']; 
$PersonalSkills=$_POST['PersonalSkills']; 



$query ="Insert Into `member` Values 
     (
     '$id', 
     '$name', 
     '$namebangla', 
     '$father', 
     '$mother', 
     '$dobDATE', 
     '$dobMONTH', 
     '$dobYEAR', 
     '$fbid', 
     '$email', 
     '$presentAdd', 
     '$permanentAdd', 
     '$sex', 
     '$contact', 
     '$Econtact', 
     '$position', 
     '$position2', 
     '$school', 
     '$college', 
     '$jscYear', 
     '$sscYear', 
     '$hscYear', 
     '$editor', 
     '$PersonalSkills', 
     '$pic' 
    )"; 

     if(mysql_query($query)){ 

      header('location: show-data.php'); 

     }else{ 
      die(mysql_error()); 
     } 
?> 
+10

**危険**:あなたは[削除されました](http:// php。php)という[廃止**データベースAPI](http://stackoverflow.com/q/12859942/19068)を使用しています。 net/manual/en/mysql.php)をPHPから入手してください。 [現代的な代替品](http://php.net/manual/en/mysqlinfo.api.choosing.php)を選択する必要があります。あなたは** [SQLインジェクション攻撃](http://bobby-tables.com/)**に対して脆弱です**現代のAPIは、[防御]を容易にします(http://stackoverflow.com/questions/60174/最良の方法からSQLへのPHPインジェクション)をあなた自身から守ってください。 – Quentin

+0

@tawsifの場合、挿入値の順序は表の構造と同じでなければなりません。同じ順序で挿入するようにしてください。 – Adrian

+3

挿入された値の順序は、テーブルの列と同じ順序でなければなりません。あなたがテーブルスキーマを提供できるなら、何が間違っているのかを正確に指摘することができます。データが正しい列に格納されていることを絶対に確認したい場合は、列名もマップする必要があります。たとえば、 'insert into my_table(col1、col2)values(val1、val2) 'を使用します。 – RToyo

答えて

2

は、おそらくあなたのテーブルのフィールドの順序は、あなたが値を提供するために異なっています。これらは、フィールド名があると仮定し、私はちょうど$と変数から単一引用符を削除

Insert Into `member` (
       id, 
       name, 
       namebangla, 
       father, 
       mother, 
       dobDATE, 
       dobMONTH, 
       dobYEAR, 
       fbid, 
       email, 
       presentAdd, 
       permanentAdd, 
       sex, 
       contact, 
       Econtact, 
       position, 
       position2, 
       school, 
       college, 
       jscYear, 
       sscYear, 
       hscYear, 
       editor, 
       PersonalSkills, 
       pic 
      ) 
Values 
     (
     '$id', 
     '$name', 
     '$namebangla', 
     '$father', 
     '$mother', 
     '$dobDATE', 
     '$dobMONTH', 
     '$dobYEAR', 
     '$fbid', 
     '$email', 
     '$presentAdd', 
     '$permanentAdd', 
     '$sex', 
     '$contact', 
     '$Econtact', 
     '$position', 
     '$position2', 
     '$school', 
     '$college', 
     '$jscYear', 
     '$sscYear', 
     '$hscYear', 
     '$editor', 
     '$PersonalSkills', 
     '$pic' 
    )" 

:あなたはあなたがにデータを挿入するフィールドをリストされている場合、それは多くの簡単かつ安全なことでしょう。異なる場合は、実際のフィールド名を指定する必要があります。

関連する問題