使用PDO和PHP函数选择数据

时间:2015-05-08 13:04:14

标签: php mysql pdo

当我尝试从我的bd中选择一个nome时,它没有显示任何内容

这是选择名称的功能:

public function searchName(){
    $db = new Conection();
    $query = $db->prepare("SELECT * FROM dog WHERE id = 1");
    $query->execute();
    $result = $query->fetchAll(PDO::FETCH_OBJ);
    foreach($result as $row)
    {
        return $row['name'];//return to getName

    }
}

这是来自getName的代码:

    require 'Conection.php';
    require 'model/Dog.php';

    $dog = new Dog;
    $res = $dog->searchName(1);

    echo $res;

班级连接正常。

3 个答案:

答案 0 :(得分:2)

由于你使用PDO::FETCH_OBJ,你应该:

return $row->name;

自从你致电:

$res = $dog->searchName(1);

您的功能声明必须是:

public function searchName($id){
    $db = new Conection();
    $query = $db->prepare("SELECT * FROM dog WHERE id = ?");
    $query->bindParam(1,$id);
    $query->execute();

答案 1 :(得分:0)

您的代码中存在一些问题, 传递后你没有使用函数参数 ,这里只想要一行返回 你应该使用$query->fetch而不是$query->fetchAll

你的代码应该是这样的

public function searchName($id){
    $db = new Conection();
    $query = $db->prepare("SELECT * FROM dog WHERE id = :id");
    $query->execute(array('id'=>$id)); // bind parameters for security
    $result = $query->fetch(PDO::FETCH_ASSOC);     // updated object with assoc... ie if obj used than return $result->name   
    return $result['name'];            
}

而不是

echo $res = $dog->searchName(1);

答案 2 :(得分:0)

PDO :: FETCH_ASSOC为$row->name

PDO :: FETCH_OBJ是{{1}}

http://php.net/manual/en/pdostatement.fetch.php