我是php的新手,我一直在寻找有关使用php将表单输入(文本),广播和选择数据插入MySQL数据库表的教程。我发现了一些教程,但大多数都令人困惑。所以我决定问。
好的,这就是我想要做的。我有一个表单有两种类型的输入和选择 1.输入类型文本 2.输入型收音机 3.选择
这是HTML代码:
<form action="" method="post" enctype="multipart/form-data">
<strong>Your Name: </strong><br>
<input type="text" name="myname" value="" />
<br /><br/>
<strong>Which class type you want:</strong><br>
<select name="selection">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
<strong>Do you agree?</strong><br>
<input type="radio" name="agree" value="Yes"> or
<input type="radio" name="agree" value="No">
<input type="submit" name="submit" value="Submit">
</form>
我已将表单操作设置为空白,因为php代码将与HTML在同一个文件中(它是一个php文件btw)
MySQL表:info 结构体 : 名字 上课 同意
我希望php代码将myname插入 name ,将所选数据选择为 class ,将广播选择的数据插入同意
P / S是的我已经添加了一个连接数据库php脚本,我只想知道如何将表单数据导入mysql。
有人可以写一个PHP代码示例,我该怎么做?
谢谢你,祝你有个愉快的一天。我希望我提供了足够的信息。如果你有帮助,再次感谢。
答案 0 :(得分:3)
1。您的radio
元素存在问题。两个选项的名称应该相同。
应该是这样的:
<input type="radio" name="agree" value="Yes"> or
<input type="radio" name="agree" value="No">
2。您可以访问$_POST
数组中的所有内容,因为您正在使用表单post
方法。
$name = $_POST['myname'];
$selection = $_POST['selection'];
$agree = $_POST['agree'];
3。如果您没有将参数化SQL与PDO,MySQLi等库一起使用...... 必须始终转义数据,这些数据将在mysql_real_escape_string()
的查询中使用,以便防止SQL注入。
这是一个示例代码,用于执行转义和查询。
// write a function somewhere, to use as a shortcut
// for escaping data which will be used in a query
function sql_escape($str){
return "'".mysql_real_escape_string($str)."'";
}
// build the query
$query = sprintf('INSERT INTO table_name(name, class, agree) VALUES(%s, %s, %s)',
sql_escape($_POST['myname']),
sql_escape($_POST['selection']),
sql_escape($_POST['agree']));
// finally run it
$result = mysql_query($query);
答案 1 :(得分:2)
我已经在这里进一步了解了,还有很多可以做的事情和很多方法可以做到,例如你可以扩展$ errors数组以包含字段id然后突出显示HTML表单字段这样用户就可以确切地看到他们出错了。 考虑到您的表单非常简单,您不需要这样。 @ Shef的代码当然可以完成这项工作,但我认为你可能会对更多内容感兴趣。
<?php
// check the form has been submitted
if (isset($_POST['submit'])) {
// escape the form fields and assign them to variables
// validate myname to ensure the user entered data
if (isset($_POST['myname']) && $_POST['myname']!='') {
$myname = mysql_real_escape_string($_POST['myname']);
} else {
// create an error variable array to store errors to display
$errors[] = 'Please enter your name';
}
// no need to validate selection here as it alway's has a value
$classtype = mysql_real_escape_string($_POST['selection']);
// validate agree unless you want to add 'checked' to one of the values
if (isset($_POST['agree']) && $_POST['agree']!='') {
$agree = mysql_real_escape_string($_POST['agree']);
} else {
$errors[] = 'Please tell us if you agree?';
}
//if errors found tell the user else write and execute the query
if ($errors) {
$message = '<p class="error">We found a problem:</p><ul>';
foreach($error as $msg){
$message .= '<li>'.$msg.'</li>';
}
$message .= '</ul><p>Please fix the error/s to continue.</p>';
} else {
// write the query
$query = "INSERT INTO table (myname, classtype, agree) VALUES ";
$query .= "('$myname','$classtype','$agree')"
// run the query
mysql_query($query);
$message = '<p class="sucessful">Thanks '.htmlspecialchars($myname).'. Your selection has been saved.</p>';
}
}
// print the message
// show the variables in the form field so they don't need re-input
if ($message!='') { echo $message; }
?>
<form action="" method="post" enctype="multipart/form-data">
<strong>Your Name: </strong><br>
<input type="text" name="myname" value="<?php echo htmlspecialchars($myname) ?>" />
<br /><br/>
<strong>Which class type you want:</strong><br>
<select name="selection">
<option value="A"<?php if ($classtype=='A') { echo ' selected'; } ?>>A</option>
<option value="B"<?php if ($classtype=='B') { echo ' selected'; } ?>>B</option>
<option value="C"<?php if ($classtype=='C') { echo ' selected'; } ?>>C</option>
</select>
<strong>Do you agree?</strong><br>
<input type="radio" name="agree" value="Yes"<?php if ($agree=='Yes') { echo ' checked'; } ?>> or
<input type="radio" name="agree" value="No"<?php if ($agree=='No') { echo ' checked'; } ?>>
<input type="submit" name="submit" value="Submit">
</form>
另外:@sqwk,不要将人们指向w3schools,请看:http://w3fools.com/
答案 2 :(得分:1)
检查$ _POST数组中是否有数据并从中获取值。
看看这里 - 第二个例子是你需要的:http://www.w3schools.com/php/php_mysql_insert.asp
(你必须做出Shef建议的修改。)
另外请记住检查数据完整性,否则人们可能会使用您的插件来运行恶意代码。
答案 3 :(得分:1)
检查这个简单的例子:
<form action="welcome.php" method="post">
Name: <input type="text" name="name" />
Sname: <input type="text" name="sname" />
<input type="submit" />
</form>
提交表单后,您可以使用姓名和sname。
的welcome.php ::
<?php
$name= $_POST["name"];
$sname= $_POST["sname"]; ?>
现在您可以像使用一样使用此变量。