php - 尝试在表中插入值时所有值都被清除
问题描述
我正在尝试使用 PHP 将值简单地插入到数据库表中。但是每次所有预先插入的值都被删除并且没有值插入发生。
<?php
$servername = "localhost";
$username = "root";
$password = "rex";
$dbname = "test";
$usr = $_POST["Username"];
$pass = $_POST["password"];
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO users(username,password)VALUES('$usr','$pass')";
// use exec() because no results are returned
$conn->exec($sql);
echo "New record created successfully";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
解决方案
这应该有效:
$sql = "INSERT INTO users (username, password) VALUES (?, ?)";
$prepared = $conn->prepare($sql);
$prepared->execute([$usr, $pass]);
这也更好,因为您正在绑定变量。
http://php.net/manual/en/pdo.prepare.php
您还应该清理您的$_POST
-variables。在您的 -变量中,用户名也用大写字母 U$_POST
拼写。
推荐阅读
- javascript - 普通 javascript 项目的 webpack 和 babel 配置失败
- android - 对 web 和 android 应用程序呈现不同的响应
- angular - 升级 ag-grid 角度版本
- bash - 防止使用 GitHub 时将大文本文件添加到提交
- c++ - 可以像在其他编译器中的 Microsoft C 中那样使用类型化或类型名声明构造函数吗?
- java - Android Intent 地图数据被覆盖
- airflow - Apache - Airflow 1.10.1 不开始工作
- java - Pyspark:python 工作者无法连接回来/socketTimeOut
- reactjs - 我可以在组件中访问的道具无法呈现
- php - PHP - 如何在导入期间在自定义字段中设置日期和时间戳