猿问

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 ) 
 
    结果竟然全部是字段名,而不是字段值,不知道是为什么?
    */
明月笑刀无情
浏览 610回答 2
2回答

幕布斯7119047

我把sql写出来, 你就明白了. select "id", "name", "age" from user where age = "100"
随时随地看视频慕课网APP
我要回答