php 封装mysql 数据库操作类
<?php
header('content-type:text/html;charset=utf-8');
//封装mysql 连接数据库php_mysql
//封装mysql 连接数据库php_mysqli
//封装mysql 连接数据库php_pdo
class db{
//三私一共
//私有的静态属性
private static $dbcon = false; //存储数据库连接对象
//私有的构造方法
private function __construct(){
//创建链接
$dbcon=mysql_connect('127.0.0.1','root','root');
//选择数据库
mysql_select_db('yii_back',$dbcon) or die('mysql connect error');
//设置字符集
mysql_query('set names utf8');
}
//私有的clone
private function __clone(){}
//共有的静态方法
public static function getInstance(){
if(self::$dbcon == false){
self::$dbcon = new self;
}
return self::$dbcon;
}
/**
*执行sql语句
*@param $sql
*@return source
**/
public function query($sql){
//通过mysql_query来实现
$query = mysql_query($sql);
//返回执行结果
return $query;
}
/**
* 查询某个字段 eg: select name select count(*)
*@param $sql
*@return string or int
**/
public function getOne($sql){
$query=$this->query($sql);
//有可能出现错误
if(!$query){
//SQL语句有错
echo 'SQL语句错误!<br/>';
echo '错误编号:' . mysql_errno() . '<br/>';
echo '错误原因:' . mysql_error() . '<br/>';
exit;
}
return mysql_result($query,0);
}
/**
* 查询一行记录
*@param $sql
*@return array 一维数组
*mysql_fetch_assoc mysql_fetch_array mysql_fetch_row
**/
public function getRow($sql,$type="assoc"){
$query=$this->query($sql);
if(!in_array($type,array('assoc','array','row'))){
die('mysql_query error!');
}
$funcname = "mysql_fetch_".$type;
return $funcname($query);
}
/**
* 查询多条记录
*@param $sql
*@return array 二维数组
*mysql_fetch_assoc mysql_fetch_array mysql_fetch_row
**/
public function getAll($sql){
//调用sql 执行函数
$query=$this->query($sql);
$list=array();
//遍历结果
//while($arr = $this->getRowFromSource($query)){
while($arr = mysql_fetch_assoc($query)){
$list[]=$arr;
}
return $list;
}
/**
* 获得上一次插入的id
**/
public function getInsertId(){
return mysql_insert_id();
}
/**
* 新增数据方法
* @param1 string $sql,要执行的SQL语句
* @param1 array $data,要添加的数据
* @return 自增长id
**/
public function insert($table,$data=array()){
//print_r($data);die;
$sql="insert into ".$table."(".implode(',',array_keys($data)).") values ('".implode("','",array_values($data))."')";
//调用sql 执行函数
$query=$this->query($sql);
if($query){
//返回数据
return mysql_insert_id(); //得到上次操作的自增长ID
}else{
return $sql;
}
}
/**
* 修改数据方法
* @param string $table 操作的数据表名
* @param array $data 操作的数据
* @param array $condition 条件
**/
public function update($table,$data,$condition=array()){
$where='';
if(!empty($condition)){
foreach($condition as $k=>$v){
$where.=$k."='".$v."' and ";
}
$where='where '.$where .'1=1';
}
$updatastr = '';
if(!empty($data)){
foreach($data as $k=>$v){
$updatastr.= $k."='".$v."',";
}
$updatastr = 'set '.rtrim($updatastr,',');
}
$sql = "update {$table} {$updatastr} {$where}";
$query=$this->query($sql);
if($query){
echo '修改成功';
}else{
return $sql;
}
}
/**
* 删除数据方法
* @param string $table 操作的数据表名
* @param array $condition 删除的条件
*/
public function delete($table,$condition){
$where='';
if(!empty($condition)){
foreach($condition as $k=>$v){
$where.=$k."='".$v."' and ";
}
$where='where '.$where .'1=1';
}
$sql="delete from {$table} {$where}";
$query=$this->query($sql);
if($query){
echo '删除成功';
}else{
return $sql;
}
}
/**
* 查询数据方法
* @param string $table 操作的数据表名
* @param array $condition 查询的条件
* @param array $field 要查询的字段
*/
public function select($table,$condition=array(),$field = array()){
$where='';
if(!empty($condition)){
foreach($condition as $k=>$v){
$where.=$k."='".$v."' and ";
}
$where='where '.$where .'1=1';
}
$fieldstr = '';
if(!empty($field)){
foreach($field as $k=>$v){
$fieldstr.= $v.',';
}
$fieldstr = rtrim($fieldstr,',');
}else{
$fieldstr = '*';
}
$sql = "select {$fieldstr} from {$table} {$where}";
$query=$this->query($sql);
$resultRow = array();
$i = 0;
while($row=mysql_fetch_assoc($query)){
foreach($row as $k=>$v){
$resultRow[$i][$k] = $v;
}
$i++;
}
return $resultRow;
}
}
php 封装mysql 数据库操作类的更多相关文章
- php 封装Mysql数据库操作类
花了点时间写了个基于php5.3的Mysql类 $mysql = new Mysql('host','user','pass','db') bool Mysql::insert("表&quo ...
- php : mysql数据库操作类演示
设计目标: 1,该类一实例化,就可以自动连接上mysql数据库: 2,该类可以单独去设定要使用的连接编码(set names XXX) 3,该类可以单独去设定要使用的数据库(use XXX): 4,可 ...
- php MySQL数据库操作类源代码
php MySQL数据库操作类源代码: <?php class MySQL{ private $host; //服务器地址 private $name; //登录账号 private $pwd; ...
- 设计模式 - 单例模式mysql数据库操作类
待续... index.php 调用方法: <?php header('Content-Type:text/html; charset=utf8'); require 'instance.php ...
- MySQL数据库操作类(PHP实现,支持连贯操作)
<?php /** * Author: suvan * CreateTime: 2018/2/27 * description: 数据库操作类(仅对接MySQL数据库,主要利用MySQLi函数) ...
- php pdo mysql数据库操作类
<?php namespace iphp\core; use iphp\App; /** * 数据库操作基类 基于pdo * @author xuen * 支持链式操作,支持参数绑定 * 说明1 ...
- C# MySQL 数据库操作类
using System; using System.Configuration; using System.Collections; using System.Data; using MySql.D ...
- DELPHI XE MYSQL数据库操作类 MYSQLHELPER
注: 无需odbc配置 {* * MySQL Helper v1.0 * 2015.6.19 * 说明: * 这是一个操作MySQL的类,该类必须和libmysql.dll,dbxmys.dll两个文 ...
- php中用面向对象的思想编写mysql数据库操作类
最近刚入门完mysql,正好学了一阵子php就想着如何把mysql的表信息用php打印页面上.现在就把代码贴出来,以便小伙伴们参考. 先是建立mysql连接: /*建立连接*/ class datab ...
随机推荐
- mysql SQL SERVER 的算法
Filesort Probes http://dev.mysql.com/doc/refman/5.7/en/dba-dtrace-ref-filesort.html http://dev.mysql ...
- Java 学习
effective+java第三版 2016-09-23 15:25 effective+java第三版 相关问答 EffectiveJava第28条中关于泛型的一个疑问? @又名耶稣谢邀 一.先说说 ...
- AndroidStudio导入项目常见问题
问题一: 解决:少了依赖的路径 问题二: 解决:把runProguard 改成minfyEnable 来源:http://blog.csdn.net/pengkv/article/details/44 ...
- vb6中webbrowser控件树转换备忘
Dim doc As HTMLDocument Set doc = WebBrowser1.Document Dim inputs As IHTMLElementCollection Set inpu ...
- MyBatis入门学习
所需要jar包:mybatis-3.x.x.jar .如果需要和spring整合,还需要加入相关的包 1:看项目目录 红颜色不要关心 2:按照步骤: 1:加入jar包 2:创建数据源(configur ...
- 从代码看 asp.net 处理过程
从这里开始 先是一个 对Com接口的导入. /// <internalonly/> /// <devdoc> /// </devdoc> [C ...
- oracle的高可用与负载均衡
浏览了一下Oracle官方的网页以及非官方的ppt,简单了解了一下Oracle提供的高可用方案.1. RACRAC, Real Application Clusters多个Oracle服务器组成一个 ...
- angular模板加载 ----ng-template
Angularjs作为mvc(或者说mvvm)框架,同样具备模板这一基本概念. NG加载模板的顺序为 内存加载---AJAX加载. 如果排版乱掉,请查阅https://www.zybuluo.com/ ...
- Sublime Text3注册码 (备用)
复制如下三个任意一个正版注册码即可—– BEGIN LICENSE —–Andrew WeberSingle User LicenseEA7E-855605813A03DD 5E4AD9E6 6C0E ...
- 使用RMAN从磁带库恢复归档文件
最近用RMAN对部分归档日志进行了恢复,在此记录恢复过程 由于不能透漏数据库信息,故举例如下: ORACLE_SID=hrdb 恢复目标路径:/NewRmanbak/restore_archive ...