<?php
/**
* 我自己封装的PDO操作类
* User: fu
* Date: 2017/7/26
* Time: 14:42
*/
class MyPDO
{
protected $pdo;
function __construct()
{
if(file_exists('db.ini')){
$arr = @parse_ini_file('db.ini');
}else{
exit('没有找到对应的配置信息文件...');
}
$dbh = "{$arr['dbms']}:host={$arr['host']};port={$arr['port']};dbname={$arr['dbname']};charset={$arr['charset']}";
$user = $arr['user'];
$pwd = $arr['password'];
$this->pdo = new PDO($dbh, $user, $pwd);
}
function __destruct()
{
$this->pdo = null;
}
/**
* 执行DML语句并返回受到影响的行数
* @param $sql 需要执行的SQL语句
* @return int 执行后返回受影响的行数(整数类型)
*/
public function execDML($sql){
return $this->pdo->exec($sql);
}
/**
* 查询并返回转换后的结果集合为数组
* @param $sql 需要执行的SQL语句
* @param int $var 指代返回数组的下标模式(PDO::FETCH_BOTH[默认],PDO::FETCH_NUM,PDO::FETCH_ASSOC)
* @return array 返回结果集数组,如果没有查询结果则返回一个空数组
*/
public function arrayByQuery($sql, $var=PDO::FETCH_BOTH){
$ps = $this->pdo->query($sql, $var);
if($ps)
return $ps->fetchAll();
return array();
}
/**
* 查询并返回转换后的结果集合为对象数组
* @param $sql 需要执行的SQL语句
* @param string $className 需要对应的类名,如果没有写则用默认值stdClass
* @return array 返回结果集对象数组,如果没有查询结果则返回一个空数组
*/
public function objectByQuery($sql, $className='stdClass'){
$ps = $this->pdo->query($sql);
$arr = array();
if($ps){
while ($info=$ps->fetchObject($className))
array_push($arr, $info);
}
return $arr;
}
}
include_once "Student.class.php";
$mp = new MyPDO();
$arr = $mp->objectByQuery("select * from student", PDO::FETCH_NUM, 'Student');
var_dump($arr[0]);
echo $arr[0]->sname;