php - 使用 pdo 时数据未插入数据库

标签 php mysql pdo

我正在学习pdo,我尝试使用CRUD方法。我正在尝试使用 pdo 将数据插入数据库,但它没有插入。下面是我的代码

        <?php 
    $username = $_POST['username'];
$password = password_hash($_POST['password'], PASSWORD_BCRYPT ));
try {
    $query = $connect->prepare("INSERT INTO users(username, password) VALUES(?,?)");
        $query->execute(array($username, $password));
        echo "data";
    }
    catch (PDOException $event) {
        echo $event->getMessage();
    }
    ?>

我有一个名为index.php的索引文件

<?php 
require_once 'db.php';
session_start();
session_regenerate_id();
?>
<!DOCTYPE html>
<html>
<head>
  <title>Sign-Up/Login Form</title>
</head>
<?php
if ($_SERVER['REQUEST_METHOD'] == '$_POST') {
    if (isset($_POST['login'])) {
        require 'login.php';
    }
    elseif (isset($_POST['register'])) {
        require 'register.php';
    }
}
?>
<body>
    <form action="index.php" method="POST">
        <input type="text" name="username">
        <input type="password" name="password">
        <input type="submit" name="register" value="Submit">
    </form>
</body>
</html>

我的 db.php 看起来像

<?php 
try {
$connect = new PDO('mysql:dbname=pdologin;host=localhost', 'root', '$$$$'); 
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (Exception $event) {
    $event->getMessage();

}
?>

最佳答案

问题是您的代码永远不会到达您的 require 脚本(login.phpregister.php),因为您的条件不正确。

您有:if ($_SERVER['REQUEST_METHOD'] == '$_POST')

应该是if ($_SERVER['REQUEST_METHOD'] == 'POST')

关于php - 使用 pdo 时数据未插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52133713/

相关文章:

php - 如何正确格式化 PDO 结果? - 以字符串形式返回的数字结果?

php - php 将 Unicode 字符转换为 UTF-8

php - 在 SQL 中转义引号

php - 使用 PDO 将数据插入数据库

java - 是否有网站可以远程上传mysql数据库并连接Java Swing应用程序

java - 在 Java 中处理多个时区

PHP PDO "select like"查询

php - Carbon - 日期采用 ISO8601 格式,带有偏移符号

javascript - 如何通过ajax减少大数组的传输时间

php - $query = sprintf 没有更新 MySQL 数据库