函数在其他函数中添加额外的mysql查询

时间:2013-10-29 17:59:59

标签: php

这是我想象的添加额外查询条件的一类,但它不起作用。我的问题是,如果可以做到这一点,如果是的话 - 怎么做?

class query
{
function add($y)
{
if($y) { return 'y'; }
}
function query()
{
$query->select('*');
$query->from('table');
$add = $this->add($y);
if($add) { $query->where('smt = smt'); }
}
}

通话类:

$items = new Query;
$items->add('y');
$items->query();

2 个答案:

答案 0 :(得分:1)

试试这个......

class query {
private $y = null;

function $add($y=null) {
if($y!=null)
$this->y = $y;

return $this->y;
}

function query()
{
$query->select('*');
$query->from('table');
$add = $this->add();
if($add) { $query->where('smt = smt'); }
}
}

通话类:

$items = new Query;
$items->add('y');
$items->query();

答案 1 :(得分:1)

您的方法Query :: query()包含以下代码行:

$add = $this->add($y);

但$ y未定义,因此在Query :: add()方法中检查if不会返回任何内容。因此,$ add为null,因此不会调用最后一个$query->where()

如果需要在各种实例方法调用中保留值,请将值存储在实例变量中,或者将它们作为方法参数传递。