【发布时间】:2020-06-25 22:18:29
【问题描述】:
我是 PHP、MySQL 和 PDO 的新手。 经过大量搜索,我编写了这段代码来插入带有密码的新用户/客户。
<?php
require_once '../../src/mysql/dbconfig.php';
try
{
$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
echo "Connected to $dbname at $host successfully.";
}
catch (PDOException $pe)
{
die("Could not connect to the database $dbname :" . $pe->getMessage());
}
$stmt = $conn -> prepare($sql);
$email = $_POST['email'];
$password = $_POST['password'];
$stmt -> bindValue(":email", $email);
$stmt -> bindValue(":password", $password);
$sql = "INSERT INTO customer (email, password) VALUES (:email, SHA2(:password,512))";
$stmt -> execute();
$conn = null;
?>
<html>
<body>
Welcome <?php echo $_POST["email"]; ?><br>
Your password is: <?php echo $_POST["password"]; ?>
</body>
</html>
当我提交时,转到另一个 PHP 页面,说出用户的电子邮件和密码。 所以当我执行 SELECT * FROM 时,我收到一个空的 SET。
(基本上Insert不起作用,但是在PHP页面上,它说的是INSERT中插入的信息)
我做错了什么?
【问题讨论】:
-
将 $sql 上移几行,在准备语句之前