表单提交的数据不会保存到phpmyadmin中

时间:2016-04-23 07:08:26

标签: php mysqli phpmyadmin

我在apache服务器上的localhost中使用下面的php代码,它显示没有错误,当我以html格式提交数据但数据未保存在phpmyadmin表中时,一切似乎都没问题。有人可以帮忙吗?

<?php
$servername = 'localhost';
$username = 'root';
$password = 'xxxx';
$database = 'newtable';
$con = mysqli_connect("$servername","$username","$password","$database");
if (! $con){
    die('Could not connect: ' . mysqli_error());
}
$sql = "INSERT INTO newtable (firstname, lastname) VALUES  ('$_POST[firstname]', '$_POST[lastname]')";
if (! $sql)
{
    die('Error: ' . mysqli_error());
}
echo "Record Added Successfully!";
mysqli_close($con);
?>

和html代码是:

<html>
<body>
    <form action="insert.php" method="post">
        Firstname: <input type="text" name="firstname" /><br><br>
        Lastname: <input type="text" name="lastname" /><br><br>
        <input type="submit" />
    </form>
</body>
</html>

5 个答案:

答案 0 :(得分:1)

您忘记执行查询,请使用下面的准备好的声明

$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];

$sql = "INSERT INTO newtable (firstname, lastname) VALUES  (?, ?)";
$stmt = $con->prepare($sql);

$stmt->bind_param("ss", $firstname, $lastname);
$stmt->execute();

答案 1 :(得分:0)

你只是写你的查询忘记执行它

$sql = "INSERT INTO newtable (firstname, lastname) VALUES  ('".$_POST['firstname']."', '".$_POST['lastname']."')";
$result=mysqli_query($con,$sql);// execute it

if (! $result)
{
die('Error: ' . mysqli_error($con));// need to pass connection as parameter
}

http://php.net/manual/en/mysqli.error.php

http://php.net/manual/en/mysqli.query.php

最好使用bind语句来防止表单sql注入

$sql = "INSERT INTO newtable (firstname, lastname) VALUES  (?, ?)";
$stmt = $con->prepare($sql);

$stmt->bind_param("ss", $firstname, $lastname);
$stmt->execute();

答案 2 :(得分:0)

您没有在任何地方执行插入查询语句,因此未添加数据。

替换以下行:

if (! $sql)
{
die('Error: ' . mysqli_error());
}

if ($mysqli->query($con, $sql) !== TRUE)
{
die('Error: ' . mysqli_error($con));
}

答案 3 :(得分:0)

谢谢你们的回答,它有效。

所有我需要添加$ result = mysqli_query($ con,$ sql);

是程序的执行吗?

答案 4 :(得分:-1)

<?php 
$servername = 'localhost';
$username = 'root'; 
$password = ''; 
$database = 'newtable'; $con = mysqli_connect("$servername","$username","$password","$database");
if (! $con){ die('Could not connect: ' . mysqli_error()); } 
$sql = "INSERT INTO yourTableName (firstname, lastname) VALUES ('".$_POST['firstname']."', '".$_POST['lastname']."')"; 
if (! $sql) { die('Error: ' . mysqli_error()); } echo "Record Added Successfully!"; mysqli_close($con); 
?>

如果您使用的是本地主机,则默认情况下db密码为空,您需要在插入查询中提供表名。