Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
表单提交的数据未保存到phpmyadmin中_Php_Mysqli_Phpmyadmin - Fatal编程技术网

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

表单提交的数据未保存到phpmyadmin中,php,mysqli,phpmyadmin,Php,Mysqli,Phpmyadmin,我在apache服务器上的localhost中使用下面的php代码,当我以html格式提交数据时,它没有显示任何错误,而且一切似乎都正常,但数据没有保存在phpmyadmin表中。有人能帮忙吗 <?php $servername = 'localhost'; $username = 'root'; $password = 'xxxx'; $database = 'newtable'; $con = mysqli_connect("$servername","$username","$pas

我在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);
?>

您只需编写查询,而忘记执行查询

$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
}
阅读

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

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

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

您忘了执行查询,请使用下面的语句

$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();

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

替换以下行:

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


谢谢你们的回答,它成功了

我只需要添加$result=mysqli\u查询($con,$sql)


这是程序的执行吗?

打字速度比我今天快,打得好!以更安全的形式更正!!请回答下面给出的答案。
if (! $sql)
{
die('Error: ' . mysqli_error());
}
if ($mysqli->query($con, $sql) !== TRUE)
{
die('Error: ' . mysqli_error($con));
}
<?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); 
?>