您能否扫描下面的代码并找出为什么表单无法成功地将记录插入到我的 MySql 表“users”中?
插入.php:
<?php // insert.php
require_once 'login.php';
$con = mysqli_connect($db_hostname, $db_username, $db_password, $db_database);
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySql: " . mysqli_connect_error();
}
$sql = "INSERT INTO users (name, email)
VALUES
('$_POST[name]]','$_POST[email]')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con;)
?>
index.html:
<html>
<body>
<h1>Hello!</h1>
<form action="insert.php" method="post">
Name: <input type="text" name="name">
Email <input type="text" name="email">
<input type="submit">
</form>
</body>
</html>
登录凭据存储在单独的login.php 文件中。 谢谢!
最佳答案
这里有一个额外的方括号
('$_POST[name]]',
^------- //Remove this from your SQL Query
您需要切换到PreparedStatements
严重的是,你上面的代码很容易受到SQL注入(inject)。
关于php - 健全性检查 - 为什么这个 PHP MySql 插入不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21814586/