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

时间:2014-03-29 21:50:58

标签: php mysql forms

我在尝试使用php将数据从表单发送到mysql数据库时遇到了一些问题。我知道当我将表单操作设置为anothen页面(<form action="example.php>时如何修复此问题,但我希望所有进程保持在一个页。 当我运行我的PHP脚本并在两个字段中输入名称然后发送,只有网页页面更改,没有别的。希望你可以帮助我。谢谢

<?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>

3 个答案:

答案 0 :(得分:1)

您的错误是您输入的

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 Injections

答案 1 :(得分:0)

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

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

它基本上对同一页面采取行动,我的意思是。

答案 2 :(得分:0)

更改此

  $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']);