PHP:无法在数据库中保存数据

时间:2018-10-02 18:29:24

标签: php mysql

所以我对此有点麻烦。我不确定该信息是否重要,但是该脚本是否可以正常工作,但是它会为每个提交多次创建多个记录(似乎它正在为每个输入的表单值进行提交)

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

不过,这是我现在遇到的代码:

(connection.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文档中正常工作

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

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

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