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 ...
随机推荐
- InnoDB Plugin文件格式(概述)
本文将介绍InnoDB Plugin数据表格式的基本概念. 1. 配置参数innodb_file_format 这是一个很容易混淆的概念.目前,在InnoDB Plugin(1.0.6)配置文件中in ...
- PHP安装libevent扩展
1. 下载扩展 官方地址http://pecl.php.net/package/libevent 请根据自己的PHP脚本选择相应版本 如 wget http://pecl.php.net/get/li ...
- Python_Day6_反射_正则表达式之篇
一.反射 定义:利用字符串形式去对象(模块)中操作(寻找/检查/删除/设置)成员 #getattr:获取模块中属性 #hasattr:检查模块中是否存在某个成员(函数) #delattr:删除模块中成 ...
- unity, animtion倒放
AnimationState.speed Description The playback speed of the animation. 1 is normal playback speed. A ...
- 2016国赛B题小区数据爬取软件
-------------------------请以任何方式留言给作者,否则视为窃取----------------------------- 看你们找数据找的那么辛苦 我就苦逼的花了1个小时写了个 ...
- Java并发之CopyOnWriteArrayList
CopyOnWriteArrayList是线程安全的.并且读操作无锁的ArrayList.不像ArrayList默认初始化大小为10的Object[],CopyOnWriteArrayList默认初始 ...
- HTML 属性
HTML 属性 HTML 元素 HTML 标题 属性为 HTML 元素提供附加信息. HTML 属性 HTML 标签可以拥有属性.属性提供了有关 HTML 元素的更多的信息. 属性总是以名称/值对的形 ...
- 修改webftp,在线文件管理
项目中要添加一个文件管理功能,允许用户维护自己的静态HTML文件. 在网上找了一个现成的在线PHP文件管理工具:webftp 下载地址:http://down.chinaz.com/soft/3067 ...
- ADO.NET 拾遗
一.SqlDataReader和SqlDataAdapter性能对比 Stopwatch sw = new Stopwatch(); sw.Start(); using(SqlConnection c ...
- C#Winfrom系统打印机调用/设置默认打印机
实现如下效果: 实现方式如下: using System;using System.Drawing.Printing;using System.Runtime.InteropServices;usin ...