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());
}
?>
**危険**:あなたは[削除されました](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
@tawsifの場合、挿入値の順序は表の構造と同じでなければなりません。同じ順序で挿入するようにしてください。 – Adrian
挿入された値の順序は、テーブルの列と同じ順序でなければなりません。あなたがテーブルスキーマを提供できるなら、何が間違っているのかを正確に指摘することができます。データが正しい列に格納されていることを絶対に確認したい場合は、列名もマップする必要があります。たとえば、 'insert into my_table(col1、col2)values(val1、val2) 'を使用します。 – RToyo