首页 > 解决方案 > 尝试在表中插入值时所有值都被清除

问题描述

我正在尝试使用 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;
?>

标签: phpsqldatabasemariadb

解决方案


这应该有效:

$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拼写。


推荐阅读