php - 健全性检查 - 为什么这个 PHP MySql 插入不起作用?

标签 php mysql forms

您能否扫描下面的代码并找出为什么表单无法成功地将记录插入到我的 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/

相关文章:

php - 管理主题编辑并发的最佳方式

php - 传递表单值并移动到另一个页面

mysql - 在 mysql 中的 BETWEEN 之后/之前使用 AND 或 OR 函数

php - 如何通过循环查询结果来制作数组数组

javascript - 表单数据和 "select multiple"

php - 4D 为 PHP 连接 MySQL 设置用户名和密码

php - 使用 Stunnel 通过 Web 服务器向 MySQL 服务器提交表单数据?

MySql 使字段可根据另一个字段的值进行访问?

php - Symfony2 表单 - 如何隐藏字段引用父对象

html - 单选按钮图像不允许选择值