使用 OOP PHP ORM 选择查询
Posted
技术标签:
【中文标题】使用 OOP PHP ORM 选择查询【英文标题】:Select Query with OOP PHP ORM 【发布时间】:2016-03-22 08:39:52 【问题描述】:对于一个客户,我必须对基于 OOP php 的应用程序进行一些调整。我对 OOP 完全没有经验,通常我只将 PHP 用于小功能。我想从我的数据库中选择数据,以在构建函数和变量中使用它。我下面的代码会解释一下
public function readTwitter()
$accounts = array();
$hastags = array('coldplay');
\ORM::for_table('feed_items')->where('portal_reference', 'tw')->delete_many();
foreach($accounts as $account)
$feed = $this->twitter->getFeedByAccount($account);
foreach($feed as $post)
$this->twitter->savePost($post);
foreach($hastags as $hashtag)
$feed = $this->twitter->getFeedByHashtag($hashtag);
foreach($feed->statuses as $post)
$this->twitter->savePost($post);
所以在这个版本的应用程序中,foreach 循环将检查 var 是否已填充,现在对数组做了什么,并在函数 readTwitter()
中使用它我喜欢的是一个选择查询,它选择我的数据库中的一个特定行来使用它而不是数组,在我的应用程序中作为 OOP 编写如下(用程序 php 编写):
$dbCon = mysqli_connect("localhost", "root", "root", "database");
if (mysqli_connect_errno())
echo "Failed to connect: " . mysqli_connect_error();
$sql = "SELECT * FROM `questions` WHERE `location` = 'wall' ORDER BY `questions`.`id` DESC ";
$query = mysqli_query($dbCon, $sql);
if ($query)
$row = mysqli_fetch_row($query);
$hashtags = $row[2]; //instead of array('coldplay');
【问题讨论】:
【参考方案1】: public function readTwitter()
$dbCon = mysqli_connect("localhost", "root", "root", "database");
if (mysqli_connect_errno())
echo "Failed to connect: " . mysqli_connect_error();
$sql = "SELECT * FROM `vragen` WHERE `location` = 'wall' ORDER BY `vragen`.`id` DESC ";
$query = mysqli_query($dbCon, $sql);
if ($query)
$row = mysqli_fetch_row($query);
$accounts = $row[3];
$hashtags = $row[2];
\ORM::for_table('feed_items')->where('portal_reference', 'tw')->delete_many();
$feed = $this->twitter->getFeedByAccount($accounts);
foreach($feed as $post)
$this->twitter->savePost($post);
$feed = $this->twitter->getFeedByHashtag($hashtags);
foreach($feed->statuses as $post)
$this->twitter->savePost($post);
我尝试合并代码,它可以按我想要的方式工作,但我认为这不是 OOP 的正确方法,对吧?
【讨论】:
以上是关于使用 OOP PHP ORM 选择查询的主要内容,如果未能解决你的问题,请参考以下文章