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 ...
随机推荐
- treap树及相关算法
#include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <string ...
- .net 开源相关
http://roslyn.codeplex.com/SourceControl/latest https://github.com/dotnet http://www.dotnetfoundatio ...
- vb.net 动态调用api
Imports System Imports System.Runtime.InteropServices Public Class DllInvoke Public Sub New(ByVal DL ...
- 自定义Mvc5 Owin 验证
public class AuthIn : IUserAuthenticate { public static ApplicationUserManager UserManager { get { r ...
- java指针
import java.util.ArrayList; import java.util.List; public class TestPoint { public static void main( ...
- 【转】Solr客户端查询参数总结
今天还是不会涉及到.Net和数据库操作,主要还是总结Solr 的查询参数,还是那句话,只有先明白了solr的基础内容和查询语法,后续学习solr 的C#和数据库操作,都是水到渠成的事.这里先列出sol ...
- java读取properties文件的内容
获得properties文件中某个key对应着的value // 路径名称 + properties的名称,不要“properties” private static final String BUN ...
- .NET,Cookie,写Cookie,取Cookie
Cookie是一段文本信息,在客户端存储 Cookie 是 ASP.NET 的会话状态将请求与会话关联的方法之一.Cookie 也可以直接用于在请求之间保持数据,但数据随后将存储在客户端并随每个请求一 ...
- UI—代理简单使用
代理:又叫委托 通俗的说是自己不能办的事 委托给别人去办.比如UITextField,UIAlertView都使用了代理 写代理的步骤: 1.声明代理里面的协议方法(@protocl) 2.声明协议的 ...
- oc-数据模型的建立
@{@"name":@"David Beckham",@"age":@38,@"gender":@"男&quo ...