PDO预处理对象参数绑定后,执行查询的结果竟然不是数据表的字段值,而成了字段名,请教一下,这是为什么?

新手上路,请多包涵
  //使用PDO对象连接数据库
   try{
      $pdo = new PDO("mysql:dbname=origin;host=localhost","root","");
    } catch (PDOException $e){
      die("数据库连接失败:".$e -> getMessage());
    }
   //使用占位符准备SQL语句
    $sql = "select ? , ? , ?  from user where age = ? ";
   //进行预处理
    $stmt = $pdo -> prepare($sql);
   //绑定参数
    $stmt ->bindparam(1,$id);
    $stmt ->bindparam(2,$name);
    $stmt ->bindparam(3,$age);
    $stmt ->bindparam(4,$num);
    //给参数赋值
    $id ='id';
    $name = 'name';
    $age ='age';
    $num = 100;
    //执行
    $stmt -> execute();
    //处理结果集
    while ($result = $stmt->fetch()){
        var_dump($result);
    }
 
   /*程序运行结果:
 
     Array ( [id] => id [name] => name [age] => age ) 
     Array ( [id] => id [name] => name [age] => age ) 
     Array ( [id] => id [name] => name [age] => age ) 
     Array ( [id] => id [name] => name [age] => age ) 
     Array ( [id] => id [name] => name [age] => age ) 
     Array ( [id] => id [name] => name [age] => age ) 
     Array ( [id] => id [name] => name [age] => age ) 
     Array ( [id] => id [name] => name [age] => age ) 
 
    结果竟然全部是字段名,而不是字段值,不知道是为什么?
    */
阅读 2.2k
2 个回答

我把sql写出来, 你就明白了.

select "id", "name", "age" from user where age = "100" 

pdo是:id,这种绑定方式,
?这种是mysqli的,而且select字段里面不需要绑定参数啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题