php - 我怎样才能简单地返回 PDO 中的对象?

标签 php object pdo

第一次尝试 PDO。

$dbh = new PDO("mysql:host=$hostname;dbname=animals", $username, $password);

$stmt = $dbh->query("SELECT * FROM animals");
$stmt->setFetchMode(PDO::FETCH_INTO, new animals);

foreach($stmt as $animals)
{
    echo $animals->name;
}

如果我跳过 setFetchMode() 方法,那么我需要调用我不想要的 $animals["name"]

但我不想为每个查询调用 setFetchMode()

有没有办法设置默认的 FetchMode ?或者一些其他方法使 query() 返回具有一个全局设置的对象。

最佳答案

也许您可以尝试扩展 PDO 类以自动为您调用该函数...简而言之:

class myPDO extends PDO
{
   function animalQuery($sql)
   {
     $result = parent::query($sql);
     $result->setFetchMode(PDO::FETCH_INTO, new animals);
     return $result;
   }

//   // useful if you have different classes
//   function vegetableQuery($sql)
//   {
//     $result = parent::query($sql);
//     $result->setFetchMode(PDO::FETCH_INTO, new vegetables);
//     return $result;
//   }
}

$dbh = new myPDO("mysql:host=$hostname;dbname=animals", $username, $password);

$stmt = $dbh->animalQuery("SELECT * FROM animals");

foreach($stmt as $animals)
{
    echo $animals->name;
}

关于php - 我怎样才能简单地返回 PDO 中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/747847/

相关文章:

php - 拉维尔 : OrderBy the paginated Eloquent relationship result

php - MySQL 结果数组到 session 变量

javascript - json数据未解析成

c++ - 在堆栈上声明对象的两种方式之间的区别

c# - 多次声明一个对象为 "new"会有什么后果?

php - PDOStatement::execute(): SQLSTATE[HY093]: 参数号无效:参数未定义

mysql - 从模式更新 mysql 记录时遇到问题

php file_get_contents() 显示页面而不是 html 源代码

javascript - 在 JavaScript 中将对象字段与变量连接起来

php - PDOStatement::bindValue- SQLSTATE[HY093]:参数编号无效