数据库操作类
新建数据库连接类MysqlDatabase.class.php
1,数据库连接需要用到的属性
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/3/3 0003
* Time: 下午 2:57
*/
class MysqlDatabase{
//数据库连接信息
private $dbConfig=array(
'host'=>'localhost',
'port'=>'3306',
'user'=>'root',
'pwd'=>'root',
'charset'=>'utf8',
'dbname'=>'php',
);
//数据库连接资源
private $link;
}2,初始化属性
<?php
private function initAttr($params){
//初始化属性
$this->dbConfig=array_merge($this->dbConfig,$params);
}3,连接数数据库
<?php
//获取数据库连接
private function connectServer(){
$host=$this->dbConfig['host'];
$port=$this->dbConfig['port'];
$user=$this->dbConfig['user'];
$pwd=$this->dbConfig['pwd'];
//连接数据库服务器
if ($link=mysql_connect("$host:$port",$user,$pwd)){
$this->link=$link;
}else{
die('数据库连接失败,请确认信息!'.mysql_error());
}
}4,查询数据库显示错误信息
<?php
//查询数据库显示错误信息
function query($sql){
if($result=mysql_query($sql)){
//执行成功
return $result;
}else{
//执行失败,显示错误信息以便于调试程序
echo 'sql执行失败:<br>';
echo '错误的sql为:',$sql,'<br>';
echo '错误的代码为:',mysql_errno(),'<br>';
echo '错误的信息为:',mysql_error(),'<br>';
die();
}
}5,设定字符集
<?php
//设定连接字符集
private function setCharset(){
$sql="set names {$this->dbConfig['charset']}";
$this->query($sql);
}6,构造参数
<?php
//构造方法
public function __construct($params=array())
{
//初始化属性
$this->initAttr($params);
//连接数数据库
$this->connectServer();
//设定字符集
$this->setCharset();
}7,查询单条数据并返回结果集
<?php
//查询单条数据并返回结果集
function fetchRow($sql){
//执行query()函数
if($result=query($sql)){
//从结果集取得依次数据即可
$row=mysql_fetch_array($result,MYSQL_ASSOC);
return $row;
}else{
return false;
}
}8,查询所有数据并返回结果集
<?php
//查询所有数据并返回结果集
function fetchAll($sql){
//执行query()函数
if($result=query($sql)){
//执行成功
//遍历结果集
$rows=array();
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
$rows[]=$row;
}
//释放结果集资源
mysql_free_result($result);
return $rows;
}else{
//执行失败
return false;
}
}9,全部代码整体展示:
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/3/3 0003
* Time: 下午 2:57
*/
class MysqlDatabase{
//数据库连接信息
private $dbConfig=array(
'host'=>'localhost',
'port'=>'3306',
'user'=>'root',
'pwd'=>'root',
'charset'=>'utf8',
'dbname'=>'php',
);
//数据库连接资源
private $link;
//构造方法,私有化可以防止类在外部被实例化
private function __construct($params=array())
{
//初始化属性
$this->initAttr($params);
//连接数数据库
$this->connectServer();
//设定字符集
$this->setCharset();
}
private function initAttr($params){
//初始化属性
$this->dbConfig=array_merge($this->dbConfig,$params);
}
//获取数据库连接
private function connectServer(){
$host=$this->dbConfig['host'];
$port=$this->dbConfig['port'];
$user=$this->dbConfig['user'];
$pwd=$this->dbConfig['pwd'];
//连接数据库服务器
if ($link=mysql_connect("$host:$port",$user,$pwd)){
$this->link=$link;
}else{
die('数据库连接失败,请确认信息!'.mysql_error());
}
}
//设定连接字符集
private function setCharset(){
$sql="set names {$this->dbConfig['charset']}";
$this->query($sql);
}
//查询数据库显示错误信息
function query($sql){
if($result=mysql_query($sql)){
//执行成功
return $result;
}else{
//执行失败,显示错误信息以便于调试程序
echo 'sql执行失败:<br>';
echo '错误的sql为:',$sql,'<br>';
echo '错误的代码为:',mysql_errno(),'<br>';
echo '错误的信息为:',mysql_error(),'<br>';
die();
}
}
//查询所有数据并返回结果集
function fetchAll($sql){
//执行query()函数
if($result=query($sql)){
//执行成功
//遍历结果集
$rows=array();
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
$rows[]=$row;
}
//释放结果集资源
mysql_free_result($result);
return $rows;
}else{
//执行失败
return false;
}
}
//查询单条数据并返回结果集
function fetchRow($sql){
//执行query()函数
if($result=query($sql)){
//从结果集取得依次数据即可
$row=mysql_fetch_array($result,MYSQL_ASSOC);
return $row;
}else{
return false;
}
}
//限制脚本实例化多个对象
//单例对象调用
private static $instance;
//接下来私有化构造方法
public static function getInstance($params=array()){
//判断是否没有实例化过
if(!self::$instance instanceof self){
//如果未被实例化
self::$instance=new self($params);
}
//返回对象
return self::$instance;
}
//私有克隆,在外部调用克隆clone $对象名,会调用clone方法复制这个对象
private function __clone()
{
// TODO: Implement __clone() method.
}
}
