python mysql l链式查询_php实现数据库链式查询的简单例子

本文介绍了PHP如何实现MySQL数据库的链式查询。通过分析原理,展示了如何在自定义类`mysql_query`中利用`->`操作符进行limit和order方法调用,并返回对类自身的引用,最终拼接成完整的SQL查询语句。
摘要由CSDN通过智能技术生成

原理分析:

语句:$mysql->limit(’0,10′)->order(‘id desc’)->findall();

->操作符用来访问对象,上面的语句一共使用了3次->操作符,而最后一次返回的是查询结果,这说明,前2次->访问后,返回的应该是一个对象,因为在php中,如果你对一个非对象使用->操作符是不可能的。这告诉我们,$mysql实例中的limit和order方法都返回一个对其所在类自身的引用即 return $this,了解了这一点,就可以实现链式查询了。

下面是一个简单的例子,供大家参考,主要是了解实现原理:

/*

* php 链式查询

* site www.jbxue.com

*/

class mysql_query{

var $tbl=’user’;//要操作的表名

var $limit=”;//存储limit语句的变量

var $order=”;//存储order语句的变量

var $sql=”;//存储完整sql语句的变量

function limit($str){

$this->limit=’limit ‘.$str;//设置limit语句

//返回对类自身的引用,这里不能使用return new mysql_qery(),

//因为这样相当于又创建了类的一个新实例,那么上一步设置的limit语句,在新实例中是不存在的

//大家可以自己实验

//因此要返回$this,即当前类的实例

return $this;

}

function order($str){

$this->order=’order by ‘.$str;//设置order语句

return $this;//返回对类自身的引用

}

function findall(){

$this->sql=’select * from ‘.$this->tbl.’ ‘.$this->order.’ ‘.$this->limit;//拼接sql语句

echo $this->sql;//输出,由于是示例,所以没有写查询数据库的代码

}

}

$mysql = new mysql_query();

$mysql->limit(’0,10′)->order(‘id desc’)->findall();

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值