我正在学习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.php
或 register.php
),因为您的条件不正确。
您有:if ($_SERVER['REQUEST_METHOD'] == '$_POST')
应该是if ($_SERVER['REQUEST_METHOD'] == 'POST')
关于php - 使用 pdo 时数据未插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52133713/