php - PDO插入和选择语句

标签 php mysql pdo

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

相关文章:

php - 正则表达式字符串中断

php - 动态缩小 CSS : leveraging browser caching

php - 记录未入库时如何设置空余空间

php - 语法错误或访问冲突 : 1064 - PDO refuses to execute multiple queries (including CREATE TEMPORARY TABLE)

php - 如何相应地对这些数组进行分组?

Javascript一次选择所有单选按钮

php - 在 WooCommerce 消息之前添加 SVG 图标

mysql - 如何通过查询连接组中最近 10 个调用?

mysql - 选择最近 7 天的最大值

php - 有没有办法在 UPDATE 查询中将 PDO 与动态列名一起使用?