我是 PHP 新手,刚学不久。我做了一些表单,在提交时,它会在 mysql 表中插入新数据。我似乎无法弄清楚问题所在。这是我的代码:
<form method="post">
<table border='2' cellpadding=4 cellspacing=1 width=50% bgcolor=white align=center >
<br>
<tr>
<td><font face=rockwell font size=5 font color=black>Master No.:</td>
<td class="td-center"><input type="text" name="master_no" /></td>
</tr>
<tr>
<td><font face=rockwell font size=5 font color=black>Alacarte No.:</td>
<td class="td-center"><input type="text" name="alacarte_no" /></td>
</tr>
<tr>
<td><font face=rockwell font size=5 font color=black>Dessert No.:</td>
<td class="td-center"><input type="text" name="dessert_no" /></td>
</tr>
<tr>
<td><font face=rockwell font size=5 font color=black>Pasta No.:</td>
<td class="td-center"><input type="text" name="pasta_no" /></td>
</tr>
<tr>
<td><font face=rockwell font size=5 font color=black>Rice No.:</td>
<td class="td-center"><input type="text" name="rice_no" /></td>
</tr>
<tr>
<td><font face=rockwell font size=5 font color=black>Wine No.:</td>
<td class="td-center"><input type="text" name="wine_no" /></td>
</tr>
<tr>
<td><font face=rockwell font size=5 font color=black>Member ID:</td>
<td class="td-center"><input type="text" name="member_id" /></td>
</tr>
<tr>
<td> </td>
<td class="td-center">
<input type="submit" name="submit" value="Add"/>
<input type="Reset"/>
<a href="member-profile.php">
<input type="button" name="home" value="home"/>
</a><br>
</td>
</tr>
</table>
<?php
if (isset($_POST['submit'])) {
$conn = mysql_connect('localhost', 'root', '');
if (!$conn)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("thesis_sofitel", $conn);
$master_no=$_POST['master_no'] ;
$alacarte_no= $_POST['alacarte_no'] ;
$dessert_no= $_POST['dessert_no'] ;
$pasta_no= $_POST['pasta_no'] ;
$rice_no= $_POST['rice_no'] ;
$wine_no= $_POST['wine_no'] ;
$member_id= $_POST['member_id'] ;
mysql_query("INSERT INTO `master_list`(master_no,alacarte_no,dessert_no,pasta_no,rice_no,wine_no,member_id)
VALUES ('$master_no','$alacarte_no','$dessert_no','$pasta_no','$rice_no','$wine_no','$member_id')");
$message = "I was here!!!";
echo "<script type='text/javascript'>alert('$message');</script>";
}
?>
</form>
最佳答案
修复了代码中的一些错误并将其更改为 mysqli
。现在应该可以了:
1) 在您的表单中提供一个 action
属性,在您的例子中为 action = ""
。
2) 回显
值以了解它们是否真的被提取。不过,这仍然容易受到 SQL 注入(inject)攻击。阅读更多 here了解准备好的陈述为何/如何提供帮助。
<?php
if (isset($_POST['add-submit'])) {
$con=mysqli_connect("localhost","root","your_pass_here","thesis_sofitel");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
echo $master_no=$_POST['master_no'] ;
echo $alacarte_no= $_POST['alacarte_no'] ;
echo $dessert_no= $_POST['dessert_no'] ;
echo $pasta_no= $_POST['pasta_no'] ;
echo $rice_no= $_POST['rice_no'] ;
echo $wine_no= $_POST['wine_no'] ;
echo $member_id= $_POST['member_id'] ;
$success = mysqli_query($con,"INSERT INTO `master_list`(master_no,alacarte_no,dessert_no,pasta_no,rice_no,wine_no,member_id)
VALUES ('$master_no','$alacarte_no','$dessert_no','$pasta_no','$rice_no','$wine_no','$member_id')");
if($success){
$message = "I was here!!!";
echo "<script type='text/javascript'>alert('$message');</script>";
}
else
echo "Query Failed.";
mysqli_close($con);
}
?>
HTML:
<form method="post" action = "">
<table border='2' cellpadding=4 cellspacing=1 width=50% bgcolor=white align=center >
<br>
<tr>
<td><font face=rockwell font size=5 font color=black>Master No.:</td>
<td class="td-center"><input type="text" name="master_no" /></td>
</tr>
<tr>
<td><font face=rockwell font size=5 font color=black>Alacarte No.:</td>
<td class="td-center"><input type="text" name="alacarte_no" /></td>
</tr>
<tr>
<td><font face=rockwell font size=5 font color=black>Dessert No.:</td>
<td class="td-center"><input type="text" name="dessert_no" /></td>
</tr>
<tr>
<td><font face=rockwell font size=5 font color=black>Pasta No.:</td>
<td class="td-center"><input type="text" name="pasta_no" /></td>
</tr>
<tr>
<td><font face=rockwell font size=5 font color=black>Rice No.:</td>
<td class="td-center"><input type="text" name="rice_no" /></td>
</tr>
<tr>
<td><font face=rockwell font size=5 font color=black>Wine No.:</td>
<td class="td-center"><input type="text" name="wine_no" /></td>
</tr>
<tr>
<td><font face=rockwell font size=5 font color=black>Member ID:</td>
<td class="td-center"><input type="text" name="member_id" /></td>
</tr>
<tr>
<td> </td>
<td class="td-center">
<input type="submit" name="add-submit" value="Add"/>
<input type="Reset"/>
<a href="member-profile.php">
<input type="button" name="home" value="home"/>
</a><br>
</td>
</tr>
</table>
</form>
编辑:
上面的代码有效,为了澄清它,我自己测试了它。以下是所附的图片。
第二次编辑:
向 OP 表明,如果他将列更改为 INT
类型,它仍然有效:
关于PHP使用mysql插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32806463/