1 <?php
2
3 class Sql
4 {
5 /**
6 * @var array
7 */
8 protected $fields = array();
9
10 /**
11 * @var array
12 */
13 protected $from = array();
14
15 /**
16 * @var array
17 */
18 protected $where = array();
19
20 /**
21 * 添加 select 字段
22 *
23 * @param array $fields
24 *
25 * @return SQL
26 */
27 public function select(array $fields = array())
28 {
29 $this->fields = $fields;
30
31 return $this;
32 }
33
34 /**
35 * 添加 FROM 子句
36 *
37 * @param string $table
38 * @param string $alias
39 *
40 * @return SQL
41 */
42 public function from($table, $alias)
43 {
44 $this->from[] = $table . ' AS ' . $alias;
45
46 return $this;
47 }
48
49 /**
50 * 添加 WHERE 条件
51 *
52 * @param string $condition
53 *
54 * @return SQL
55 */
56 public function where($condition)
57 {
58 $this->where[] = $condition;
59
60 return $this;
61 }
62
63 /**
64 * 生成查询语句
65 *
66 * @return string
67 */
68 public function getQuery()
69 {
70 return 'SELECT ' . implode(',', $this->fields)
71 . ' FROM ' . implode(',', $this->from)
72 . ' WHERE ' . implode(' AND ', $this->where);
73 }
74 }
75
76
77
78
79 $instance = new Sql();
80 $query = $instance->select(array('foo', 'bar'))
81 ->from('foobar', 'f')
82 ->where('f.bar = ?')
83 ->getQuery();