繁体   English   中英

尝试使用PHP将数据从表单发送到MySql时出错

[英]Error while trying to send data from form to MySql using PHP

我在尝试使用php将数据从表单发送到mysql数据库时遇到一些问题。我知道如何在将表单操作设置为anothen页面( <form action="example.php>时解决此问题,但我希望所有过程都保留在一页,我运行我的php脚本,并在两个字段中输入名称,然后发送,只更改url页,什么都没有。希望您能对我有所帮助。

<?php
$con=mysqli_connect("localhost","root","","test");
if (mysqli_connect_errno())
{
echo"Error connecting to database". mysqli_connect_error();
}
if (isset($_POST['input_send']))
{
$name=($_POST['input_name']);
$lastname=($_POST['input_lastname']);
$insert="INSERT INTO test_mysql (name, lastname) VALUES ('$name', $lastname)";
echo"record added";
}
?>
<form action="" action="post">
First name: <input type="text" name="input_name"/>
Last name: <input type="text" name="input_lastname"/>
<input type="submit" value="send" name="input_send"/>
</form>

您的错误是您输入了

action="post"

代替

method="post"

如果未指定方法,PHP将退回到GET。 因此,您的isset($_POST)将返回false,并且您没有看到“已添加记录”

正如echo_ME所指出的,另一个错误是您没有将MySQL查询提交到数据库:

$insert="INSERT INTO test_mysql (name, lastname) VALUES ('$name', $lastname)";

使用函数mysqli_query可以执行查询:

mysqli_query($insert);

如其他人所述,您应该转义变量以防止SQL注入

<form action="<?=echo $_SERVER['PHP_SELF']?>" method='post'> 

您可以从服务器获取有关页面URL的信息。

我的意思是,它基本上作用于同一页面。

改变这个

  $insert="INSERT INTO test_mysql (name, lastname) VALUES ('$name', $lastname)";

 mysqli_query("INSERT INTO test_mysql (name, lastname) VALUES ('$name', '$lastname')");

和这个

action="post"

method="post"

并像这样转义您的变量:

$name=mysqli_real_escape_string($_POST['input_name']);
$lastname=mysqli_real_escape_string($_POST['input_lastname']);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM