<?php
class Mysql{
//数据库连接返回值
private $conn;
/**
* [构造函数,返回值给$conn]
* @param [string] $hostname [主机名]
* @param [string] $username[用户名]
* @param [string] $password[密码]
* @param [string] $dbname[数据库名]
* @param [string] $charset[字符集]
* @return [null]
*/
function __construct($hostname,$username,$password,$dbname,$charset='utf8'){
$conn = mysqli_connect($hostname,$username,$password);
if(!$conn){
echo "连接失败";
exit;}$this->conn = $conn;
$res = mysqli_select_db($conn,$dbname);if(!$res){
echo '连接失败,请联系管理员';exit;
}mysqli_set_charset($conn,$charset);}
function __destruct(){mysqli_close($this->conn);}
/**
* [getAll 获取所有信息]
* @param [string] $sql [sql语句]
* @return [array] [返回二维数组]
*/
function getAll($sql){$result = mysqli_query($this->conn,$sql);$data = array();if($result && mysqli_num_rows($result)>0){while($row = mysqli_fetch_assoc($result)){$data[] = $row;}}return $data;}
/**
* [getOne 获取单条数据]
* @param [string] $sql [sql语句]
* @return [array] [返回一维数组]
*/
function getOne($sql){
$result = mysqli_query($this->conn,$sql);
$data = array();
if($result && mysqli_num_rows($result)>0){
$data = mysqli_fetch_assoc($result);
}
return $data;
}
/**
* [getOne 获取单条数据]
* @param [string] $table [表名]
* @param [string] $data [由字段名当键,属性当键值的一维数组]
* @return [type] [返回false或者插入数据的id]
*/
function insert($table,$data){
$str = '';
$str .="INSERT INTO `$table` ";
$str .="(`".implode("`,`",array_keys($data))."`) ";
$str .=" VALUES ";
$str .= "('".implode("','",$data)."')";
$res = mysqli_query($this->conn,$str);
if($res && mysqli_affected_rows()>0){
return mysqli_insert_id($this->conn);
}else{
return false;
}}
/**
* [update 更新数据库]
* @param [string] $table [表名]
* @param [array] $data [更新的数据,由字段名当键,属性当键值的一维数组]
* @param [string] $where [条件,'字段名’='字段属性’]
* @return [type] [更新成功返回影响的行数,更新失败返回false]
*/
function update($table,$data,$where){
$sql = 'UPDATE '.$table.' SET ';
foreach($data as $key => $value){
$sql .= "`{$key}`='{$value}',";
}
$sql = rtrim($sql,',');
$sql .= " WHERE $where";
$res = mysqli_query($this->conn,$sql);
if($res && mysqli_affected_rows($this->conn)){
return mysqli_affected_rows($this->conn);}else{
return false;
}
}
/**
* [delete 删除数据]
* @param [string] $table [表名]
* @param [string] $where [条件,'字段名’='字段属性’]
* @return [type] [成功返回影响的行数,失败返回false]
*/
function del($table,$where){
$sql = "DELETE FROM `{$table}` WHERE {$where}";
$res = mysqli_query($this->conn,$sql);
if($res && mysqli_affected_rows($this->conn)){
return mysqli_affected_rows($this->conn);}else{
return false;
}
}
}
?>
使用方法:
<?php
//包含数据库操作类文件
include 'mysql.class.php';
//设置传入参数
$hostname='localhost';
$username='root';
$password='123456';
$dbname='51dev';
$charset = 'utf8';
//实例化对象
$db = new Mysql($hostname,$username,$password,$dbname);
//获取一条数据
$sql = "SELECT count(id) as count from article where id=1";
$count = $db->getOne($sql);
//获取多条数据
$sql = "SELECT * FROM article where type_id=110 order by addtime desc limit $start,$limit";
$service = $db->getAll($sql);
//插入数据
$arr = array(
'as_article_title'=>'www.51dev.com数据库教程',
'as_article_author'=>'rex',
);
$res = $db->insert('article',$arr);
//更新数据
$arr = array(
'as_article_title'=>'php登录的例子',
'as_article_author'=>'星空',
);
$where = "id=1";
$res = $db->update(article',$arr,$where);
//删除数据
$where = "article_id=1";
$res = $db->del(article',$where);
?>