根据程序条件查询运行时的生成


Query for build at runtime according to program condition

在编写如下查询时应牢记哪些要点?

$sql=" And two=2";

$ sql。=" And three= ";

$sqlquery="select * from".$sql;

我想做一些复杂的查询,比如

您最好将where 1=1添加到主查询中。这样,您可以或不可以有任意数量的and连接条件。

:

$base_query = 'select * from table where 1=1';
$base_query.= 'and two = 2';
$base_query = 'and three = 3';

UPDATE: Doctrine ORM样式查询:

//$em is instance of EntityManager
$qb = $em->createQueryBuilder();
$qb->select('u')
  ->from('User', 'u')
  ->where('u.id = ?1')
  ->orderBy('u.name ASC');
//you could add any part of query later
$qb->andWhere("u.name = 'John'");
$query = $qb->getQuery();
$result = $query->getResult();

我个人更喜欢这样处理数组

$where = array(); $where[] = 'Two = 2' $where[] = 'Three = 3'; $sql = implode(' AND ', $where);

我认为最好使用一些数据库抽象类/活动记录

问候。