我正在尝试使用PDO执行select和insert语句。正如您所看到的,我已经设法创建了一个插入用户的查询,并且我已经成功添加了一个消息左侧节点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;
}
}
?>
答案 0 :(得分:1)
您的代码有很多错误:
$query->execute();
if($query){
$query
是你的陈述句柄,并且总是“真实”。如果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个参数。由于您不打算检查查询是否成功,因此您了解操作是否成功。