mysql pdo 查询一条数据_PDO数据库操作类——查询获取数据的实现

本文介绍了如何在PHP中使用PDO进行数据库查询,包括查询一条数据的方法,并展示了如何封装PDO的查询功能。通过实例展示了不同形式的查询语句,如按条件排序、限制返回结果数量等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mPHP核心框架使用PDO数据库抽象层查询数据库中的数据,都是通过PDO的query()方法,如果你熟悉Mysql数据库的sql语句,那么理解起来就更轻松了,你完全可以把它当作mysql的query()来使用。

例如存在表mo2g_testidname

1PDO

2mPHP

我们要查询mo2g_test表中id为1的数据,那么mysql的使用方法如下$strSql = "select * from mo2g_test where id = 1";

mysql_query($strSql);

$arrData = mysql_fetch_array();//获取找到的数据

print_r($arrData);//输出找到的数据

PDO的查询方法如下$strSql = "select * from mo2g_test where id = 1";

$pdo->query($strSql);//返回影响了多少行数据

$arrData = $pdo->fetch();//获取找到的数据

print_r($arrData);//输出找到的数据

可以看到,在查询方面PDO与Mysql的sql语句没什么差别,所以很容易就能封装PDO的查询功能与获取数据功能。

下边直接给出select()的实现代码与使用方式,最后还得跟大家说明一点,就是我在使用的过程中,感觉对于查询功能来说还是手写的sql语句更灵活,更能适应复杂的查询需求,比如多表关联查询。所以还是建议使用query()的查询方式。

还是那句话,如果在使用的过程中遇上什么问题,可以给我留言。$pdo->select('*','mo2g_test','id=1');//获取id为1的数据

$arrData = $pdo->fetch();//获取找到的数据

print_r($arrData);//输出找到的数据

$pdo->select('*','mo2g_test','id>1','id');//根据id从大到小进行排序

$pdo->select('*','mo2g_test','id>1','id asc');//根据id从小到大进行排序

$pdo->select('*','mo2g_test','id>1',array('field'=>'id','order'=>'asc'));//根据id从小到大进行排序

$pdo->select('*','mo2g_test','id>1','id','limit 1');//根据id从大到小进行排序,并只获取1条数据

$arrData = $pdo->fetch_all();//获取找到的所有数据

print_r($arrData);//输出找到的数据

//推荐使用的查询方式

public function query($strSql) {

$this->result = $this->db->query($strSql);

return $this;

}

/*

$select:要获取的属性

$table:数据表名称

$condition:获取条件

$order:数据排序

$limit:获取几条数据

*/

public function select($select,$table,$condition = '',$order = array(), $limit = '') {

if( is_array($order) && isset($order['order']) && ( $order['order'] == 'desc' || $order['order'] == 'asc' ) && isset($order['field']) ) {

$order = "order by $order[field] $order[order]";

} elseif( is_string($order) ) {

$order = "order by {$order}";

} else $order = '';

$this->sql = $strSql = $condition == '' ?

"select $select

from $table

$order

$limit"

:

"select $select

from $table

where $condition

$order

$limit";

if($this->result = $this->db->query($strSql)) {

return $this;

}

return $this;

}

//获取所有查询到的数据

public function fetch_all() {

$arrData = array();

if( $this->result ) {

while($row = $this->result->fetch(PDO::FETCH_ASSOC) ) {

$arrData[] = $row;

}

}

return $arrData;

}

//获取一条查询到的数据

public function fetch() {

$arrData = array();

if( $this->result ) {

$arrData = $this->result->fetch(PDO::FETCH_ASSOC);

}

return $arrData;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值