Php 使用get将表单数据发送到mySQL
我想使用get通过php将用户输入的表单数据发送到mysqlPhp 使用get将表单数据发送到mySQL,php,html,mysql,post,get,Php,Html,Mysql,Post,Get,我想使用get通过php将用户输入的表单数据发送到mysql <form action="formtosql.php" method="get"> <div class="row"> <div class="form-group col-md-4"> <label for="001">Student name:</labe
<form action="formtosql.php" method="get">
<div class="row">
<div class="form-group col-md-4">
<label for="001">Student name:</label>
<input type="text" class="form-control" id="001" name="sname">
</div>
</div>
<div class="row">
<div class="form-group col-md-4">
<label for="002">Status:</label>
<input type="text" class="form-control" id="002" name="sstatus">
</div>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
学生姓名:
地位:
提交
php代码如下所示:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'GET'){
$name = $_GET['sname'];
$stat = $_GET['sstatus'];
// Connecting to the Database
$servername = "localhost";
$username = "root";
$password = "";
$database = "exam";
// Create a connection
$conn = mysqli_connect($servername, $username, $password, $database);
// Die if connection was not successful
if (!$conn){
die("Sorry we failed to connect: ". mysqli_connect_error());
}
else{
$sql = "INSERT INTO `estatus` (`name`, `status`, `date`) VALUES ('$name', '$stat', current_timestamp())";
$result = mysqli_query($conn, $sql);
?>
我假设您在这里的同一脚本中同时生成表单和处理提交的值
如果我使用Post,则不会发生此错误
您检查了REQUEST_方法以确定是否正在处理该案例,即表单是否已提交
当您在表单上使用method=“post”
时,您可以这样做-加载包含表单的页面的初始请求用于生成GET方法,提交时将使用post-因此可以区分这两种情况
但是,如果使用method=“get”
,则两个请求(用于初始加载页面的请求和用于提交表单数据的请求)的方法相同,因此您不能再使用该方法来区分这两种情况
如果给submit按钮一个名称,那么可以检查(使用isset/empty)相应的参数是否存在,并使用该参数确定您正在处理的两种情况中的哪一种
但正如评论中已经提到的,对于在服务器端创建数据的请求,通常应该使用POST,而不是GET。在下面,您可以找到更深入的解释。我假设您在同一个脚本中生成表单和处理提交的值
如果我使用Post,则不会发生此错误
您检查了REQUEST_方法以确定是否正在处理该案例,即表单是否已提交
当您在表单上使用method=“post”
时,您可以这样做-加载包含表单的页面的初始请求用于生成GET方法,提交时将使用post-因此可以区分这两种情况
但是,如果使用method=“get”
,则两个请求(用于初始加载页面的请求和用于提交表单数据的请求)的方法相同,因此您不能再使用该方法来区分这两种情况
如果给submit按钮一个名称,那么可以检查(使用isset/empty)相应的参数是否存在,并使用该参数确定您正在处理的两种情况中的哪一种
但正如评论中已经提到的,对于在服务器端创建数据的请求,通常应该使用POST,而不是GET。在下面,您可以找到更深入的解释。如果要将数据插入表中,则在向数据库“发布”时应使用“发布”,而不是“获取”,而不是从数据库中“获取”。既然这对你有效,为什么要尝试切换到“获取”?您还需要查看准备好的语句,而不仅仅是将字符串连接到查询中。另外,如果日期始终是当前时间戳,则在表定义中将其设置为默认值,并将其完全排除在查询之外。所以我有点困惑,因为我只是一个初学者:(我不明白为什么要使用get方法而不是POST方法,因为POST方法在向服务器发送数据时比get更安全。我只是想知道在使用GETWarning时出现此错误的原因:您对参数化预处理语句非常开放,应该使用参数化预处理语句,而不是手动生成查询。它们由或b提供y.永远不要信任任何类型的输入!即使您的查询仅由受信任的用户执行。如果您要将数据插入表中,您应该在向数据库“发布”时使用“发布”而不是“获取”,而不是从数据库“获取”。既然这对您有效,为什么要尝试切换到“获取”?您还需要查看准备好的语句,而不仅仅是将字符串连接到查询中。此外,如果日期始终是当前时间戳,请在表定义中将其设置为默认值,并将其完全排除在查询之外。我在GET()中看到过几篇文章用于发送或打印数据。因此有点混乱,因为我只是一个初学者:(我不明白为什么要使用get方法而不是POST方法,因为POST方法在向服务器发送数据时比get更安全。我只是想知道在使用GETWarning时出现此错误的原因:您对参数化预处理语句非常开放,应该使用参数化预处理语句,而不是手动生成查询。它们由或b提供y.永远不要信任任何类型的输入!即使您的查询仅由受信任的用户执行。哦,好的一点,我从来没有想到过。因此,这些消息不是来自表单提交时,而是来自表单提交前的绘制时。哦,好的一点,我从来没有想到过。因此,这些消息不是来自表单提交时,而是来自是在提交之前绘制的。