我正在使用php和postgresql。
我需要一个功能:
如果尚未连接,则连接到数据库 安全地运行查询 将结果放入对象
例如: 我做了一个'select * from test'的查询。我回到了2行......'test'中有三列(id,fname,lname)。
我有一个名为$ ep的对象。我希望能够将列名结果放入对象中,并将值放入对象中。所以我可以做一个$ ep-> fname的var_dump,它会显示一个包含两个结果的数组。
我不想将列名硬编码到我的函数中。我希望它是动态的。所以无论我要求什么表或列,它都会将所有内容都放入对象中。
答案 0 :(得分:1)
Object Relational Mapper (ORM)可以为您提供许多您描述的功能(以及更多功能)。看看:
这是Propel代码的样子:
$book = BookQuery::create()->findPK(123); // retrieve a record from a database
$book->setName('Don\'t be Hax0red!'); // modify. Don't worry about escaping
$book->save(); // persist the modification to the database
$books = BookQuery::create() // retrieve all books...
->filterByPublishYear(2009) // ... published in 2009
->orderByTitle() // ... ordered by title
->joinWith('Book.Author') // ... with their author
->find();
foreach($books as $book) {
echo $book->getAuthor()->getFullName();
}
答案 1 :(得分:0)
<强>尝试强>
<强> pg_fetch_object 强>
阅读文档
例如
<?php
$database = "test";
$db_conn = pg_connect ("host=localhost port=5432 dbname=$database");
if (!$db_conn): ?>
<H1>Failed connecting to postgres database <?php echo $database ?></H1> <?php
exit;
endif;
$ep = pg_query ($db_conn, "SELECT * FROM verlag ORDER BY autor");
$row = 0; // postgres needs a row counter other dbs might not
while ($data = pg_fetch_object ($ep, $row)) {
echo $data->fname;
$row++;
}
?>
答案 2 :(得分:0)
您需要构建自己的数组或对象,然后循环遍历结果,并将其中的每一个添加到数组/对象中。
有些软件包包含此功能,例如ezSQL。