PDO插入和选择语句

时间:2016-08-30 14:24:53

标签: php mysql pdo

我正在尝试使用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;
          }
    }


?>

1 个答案:

答案 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个参数。由于您不打算检查查询是否成功,因此您了解操作是否成功。