首页 > 解决方案 > PHP:无法将数据保存在数据库中

问题描述

所以我在这方面有点麻烦。我不确定此信息是否重要,但此脚本在某一时刻工作,但它为每次提交制作多个记录(似乎它正在为每个输入的表单值进行提交)

例如。如果输入了名字和姓氏,将创建 2 条记录。

除此之外,这是我现在遇到问题的代码:

(连接.php)

<?php
$host = "localhost";
$dbusername = "root";
$dbpassword = "";
$dbname = "contacts";
$conn = new mysqli($host, $dbusername, $dbpassword, $dbname);

if($conn)
{
echo "Connection OK!";
}
else
{
    die("Connection failed");
}   
?>

(index.html)

<?php
include ("connection.php");

$fn = isset ($_GET['first_name'])? $_GET['first_name'] : null;
$ln = isset ($_GET['last_name'])? $_GET['last_name'] : null;

$query = "INSERT INTO contact VALUES ('fn','ln')";
$data = mysqli_query($conn, $query);

if($data)
{
echo "Data inserted!";
}
?>

连接似乎工作得很好,因为我收到“连接正常”消息,并且变量似乎也根据表单值发生变化......但无论我现在做什么,查询都不会工作(我'如果不明显,我正在尝试用上述值填充表格)...我正在使用 Apollo 2.435 以防出现插件问题并且您知道如何解决该问题(这似乎也可以正常工作)以上所有代码都在 HTML 文档中工作)

谢谢你的帮助。

标签: phpmysql

解决方案


您可以尝试准备好的语句来插入记录:

$stmt = $conn->prepare("INSERT INTO contact (firstname, lastname) VALUES (?, ?)");
$stmt->bind_param("ss", $fn, $ln);
$fn = $_GET['first_name'];
$ln = $_GET['last_name'];
$stmt->execute();

推荐阅读