我正在尝试使用 PDO 执行选择和插入语句。正如您所看到的,我已经成功创建了一个插入用户的查询,并且我已经成功添加了一条消息 left node 1 。然而,这里的问题是当我查看 sql 数据库时。我的数据没有记录。我已经做了一个 echo 语句,看来我的变量正在正确输出。
<?php
include("connection.php");
if (isset($_POST['btn-signup'])) {
$uname = trim($_POST['user_name']);
$uic = trim($_POST['user_ic']);
$email = trim($_POST['user_email']);
$upass = trim($_POST['password']);
$new_password = password_hash($upass, PASSWORD_DEFAULT);
$query = $dbh->prepare("select * from users");
$query->execute();
if($query){
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
$enroller_id3 = $row['enroller_ID'];
$test = "left_mem";
$test2 = "right_mem";
$direc = $direction;
}
}
?>
最佳答案
您的代码有很多错误:
$query->execute();
if($query){
$query
是您的语句句柄,并且始终为“true”。如果 execute()
失败,它会返回该事实。 $query
不会神奇地变成 false
。
你应该有:
$result = $query->execute();
if(!$result) {
然后你就得到了这个:
$query1 = "INSERT INTO users
(user_Name, user_ID, user_Email, user_Pass, enrolled_ID, enroller_ID, enroller_Postion, direction, country)
VALUES
(:uname, :email, :new_password,:enrolled_id_n,
:enroller_id_n, :uposition, :direc, :ucountry)";
看到里面少了什么吗?您有 9 个字段和 8 个参数。由于您不费心检查查询是否成功,因此您对操作成功撒了谎。
关于php - PDO插入和选择语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39230177/