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 ...
随机推荐
- 论文阅读之:PRIORITIZED EXPERIENCE REPLAY
PRIORITIZED EXPERIENCE REPLAY ICLR 2016 经验回放使得 online reinforcement learning agent 能够记住并且回放过去的经验.在先前 ...
- C++ code: 将程序的输出,保存到txt文档中,且每35个数,自动换行
// write the predicted score into txt files ofstream file("/home/wangxiao/Downloads/caffe ...
- Unity脚本系统
什么是脚本?脚本是一个 MonoBehavior, 继承关系是 MonoBehavior -> Behavior -> Component -> Object GameObject ...
- bash feature
bash调用-启动文件-交互式shell-条件表达式-shell算术-别名-数组-目录栈-提示符控制-受限shell-posix模式 受限shell bash --restricted 它用来建立一个 ...
- 【转】JavaScript实际应用:父子页面交互
转自:http://blog.csdn.net/xinyueyuli/article/details/509893 最近项目开发中需要子窗口和父窗口交互的内容,基本上无非就是把子窗口的信息传递给父窗口 ...
- OpenJudge计算概论-求一元二次方程的根【含复数根的计算、浮点数与0的大小比较】
/*====================================================================== 求一元二次方程的根 总时间限制: 1000ms 内存限 ...
- Netflix Zuul 了解
Zuul 是提供动态路由,监控,弹性,安全等的边缘服务.Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门.Zuul 可以适当的对多个 Amazon Auto Scal ...
- WebAPI Post类型传参报错“找不到与该请求匹配的操作”
错误内容: Message=未找到与请求 URI“http://localhost:42914/api/Products/Login”匹配的 HTTP 资源. MessageDetail=在控制器“P ...
- python子类分配
原问题是将左边样式变成右边样式: 即有父类和子类,父类包括多个子类,怎样将子类匹配到父类下面的问题 代码如下 #!/usr/bin/python3.4 # -*- coding: utf-8 -*- ...
- jQuery Mobile_事件
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...