<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2016/6/27
* Time: 18:55
*/ Class Mysqls{ private $table; //表
private $opt; public function __construct($host,$user,$pwd,$name,$table_names)
{
$this->db=new mysqli($host,$user,$pwd,$name); //数据库连接 if(mysqli_connect_errno()){
echo "数据库连接错误".mysqli_connect_errno();
exit();
}
$this->db->query("set names utf8");
$this->table=$table_names;
$this->opt['field']="*";
$this->opt['where']=$this->opt['Order']=$this->opt['Limit']=$this->opt['Group']='';
// var_dump($this->opt['where']);
//$this->M($table_names); } //数据库连接
// protected function M($table_name){
// $this->db=new mysqli(DBHOST,DBUSER,DBPWD,DBNAME);
//
// if(mysqli_connect_errno()){
// echo "数据库连接错误".mysqli_connect_errno();
// exit();
// }
// $this->db->query("set names utf8");
// $this->table=$table_name;
// } //表中的字段 public function tbField(){
$desc=$this->db->query("DESC {$this->table}");
$fieldArr=array();
while(($row=$desc->fetch_assoc())!=false){
$fieldArr[]=$row['Field'];
}
// var_dump($fieldArr);
return $fieldArr;
} //查询字段
public function field($filed){
//拆分字段
$filedArr=is_string($filed)?explode(",",$filed):$filed;
if(is_array($filedArr)){
$filed='';
foreach($filedArr as $v){
$filed.="'".$v."'".",";
}
}
//var_dump($filed);
return rtrim($filed,","); } //判断字段是否存在
public function isfield($fileds)
{
$filedArr=is_string($fileds)?explode(",",$fileds):$fileds;
$tbFiled=$this->tbField();
//var_dump( $tbFiled);
foreach($filedArr as $v){
if(!in_array($v,$tbFiled)){
echo "字段输入发错";
}
} }
//条件语句
public function where($where){
$this->opt['where']=is_string($where)?" WHERE {$where}":"不是字符串";
return $this; }
//Limit
public function Limit($limit){
$this->opt['Limit']=is_string($limit)?" Limit {$limit}":"不是字符串";
return $this; }
public function Order($order){
$this->opt['Order']=is_string($order)?" Order By {$order}":"不是字符串";
return $this; }
public function Group($group){
$this->opt['Group']=is_string($group)?" Group BY {$group}":"不是字符串";
return $this; } // 查询字符串
public function select(){
$sql="select * from {$this->table} {$this->opt['where']} {$this->opt['Group']} {$this->opt['Limit']} {$this->opt['Order']}";
return $this->fetch($sql);
}
//结果集查询
public function fetch($sql){
$result=$this->db->query($sql);
$sqlarr=array();
while(($row=$result->fetch_assoc())!=false){
$sqlarr[]=$row;
}
// var_dump($sqlarr);
return $sqlarr;
}
//无结果集查询
public function querys($sql){
$sqls=$this->db->query($sql);
return $this->db->affected_rows;
} //删除语句
public function delete($where=array()){
if($where=="" && empety($this->opt['where'])) die(" 不能为空");
if($where!=""){
if(is_array($where)){
$where=implode(",",$where);
}
$this->opt['where']=" WHERE id IN({$where})";
}
$sql="delete from {$this->table} {$this->opt['where']} {$this->opt['Limit']}";
var_dump($sql);
//return $this->query($sql);
}
//数组键名
public function key($key){
if(!is_array($key))die("非法数组");
$keys="";
foreach($key as $v){
$keys.=$v.","; }
return rtrim($keys,",");
}
//数组值
public function value($value){
if(!is_array($value))die("非法数组");
$strvalue="";
foreach($value as $v){
$strvalue.="'".$v."'".",";
}
return rtrim($strvalue,",");
} //添加语句
public function add($filed){
if(!is_array($filed)) die("非法数组");
$fileds=$this->key(array_keys($filed)); //返回数组中的键名
//var_dump($fileds);
$values=$this->value(array_values($filed));
$sql="insert into {$this->table}({$fileds})VALUES($values)";
//var_dump($sql);
return $this->querys($sql);
} //查找单条记录
public function find($field,$id){
$sql="select {$this->opt['field']} from {$this->table} {$this->where($field.'='."'".$id."'")}";
var_dump($sql);
return $this->fetch($sql); }
//更新语句
public function save($arrs){
if(!is_array($arrs))die("非法的数组");
//if(empty($this->opt['where']))die("条件不能为空");
$str="";
while(list($k,$v)=each($arrs))
{
$str="{$k}="."'{$v}',";
}
$str=rtrim($str,",");
$sql="Update {$this->table} set {$str}{$this->opt['where']}"; return $this->querys($sql); }
//获取总记录数
public function counts(){ $sql="select 'id' from {$this->table}{$this->opt['where']}";
//var_dump($sql);
return $this->querys($sql);
} } $db=new Mysqls('127.0.0.1','root','','mysql','user');

 写的一部分有问题 参考了别人一部分

PHP值mysql操作类的更多相关文章

  1. PHP:自己写的mysql操作类

    a{ font-weight: bold; display: block; text-align: center; color: #5887bf; font-size: 22px; } .conten ...

  2. ecshop的Mysql操作类

    摘要,这是直接摘抄的ecshop的mysql操作类:不过他这里的缓存是用的文件缓存,我们如果想直接使用,可以替换成memcache的或者redis的! <?php /** * ECSHOP MY ...

  3. php--->单例模式封装mysql操作类

    php 单例模式封装mysql操作类 单例模式的必要条件(三私一公) 私有的成员属性--防止类外引入这个存放对象的属性 私有的构造方法--为了防止在类外使用new关键字实例化对象 私有的克隆方法--为 ...

  4. Angular4+NodeJs+MySQL 入门-02 MySql操作类

    NodeJs操作MySQL类 此类封装了几个常用的方法:插入,更新,删除,查询,开启事务,事务提交,事务回滚等操作.有一这个类,操作MYSQL就方便多了. 批处理,存储过程等方法还没有添加,因为觉得目 ...

  5. MySQL操作类的封装(PHP)

    <?php class mysql{ /** * 报错函数 * * @param string $error */ function err($error){ die("对不起,您的操 ...

  6. PHP封装的一个单例模式Mysql操作类

    掌握满足单例模式的必要条件----三私一公. ①私有的构造方法-为了防止在类外使用new关键字实例化对象. ②私有的成员属性-为了防止在类外引入这个存放对象的属性. ③私有的克隆方法-为了防止在类外通 ...

  7. mysql操作类

    同事今天推荐了一个mysql链接操作的类,地址 https://github.com/joshcam/PHP-MySQLi-Database-Class  大概看了一下,还是不错的,有点意思,先记录一 ...

  8. MySQL操作类(本人自己写的)

    package com.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepare ...

  9. C# MySql 操作类

    /* MySql 类 */ using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

随机推荐

  1. mysql:键缓存

    myisam的主要优化参数: key_buffer_size - 这对MyISAM表来说非常重要,是用来设置整个MySQL中常规Key Cache的大小.一般来说,如果MySQL运行在32位平台,此值 ...

  2. 学习OpenCV——ORB简化版&Location加速版

    根据前面surf简化版的结构,重新把ORB检测的代码给简化以下,发现虽然速度一样,确实能省好多行代码,关键是有 BruteForceMatcher<HammingLUT>matcher的帮 ...

  3. HTML调用servlet(一)

    1.页面的数据表单 在使用Servlet处理用户请求之前,先准备一个页面,该页面用来提供数据表单.数据表单就是HTML中的<form>...</form>部分,当用户单击Sub ...

  4. [原创]java WEB学习笔记56:Struts2学习之路---Struts 版本的 登录 demo

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  5. 使用git做服务器端代码的部署

    传统部署方案     windows 远程桌面     FTP/SFTP     登录服务器pull github代码     Phing(PHP专业部署工具) git 自动部署流程图   服务器端准 ...

  6. paper 92:Lena与图像处理

    如果你是个数字图像处理技术的研究人员,或这方面的工程师, 想必对这位戴有羽状帽饰的美女不会感觉陌生.我第一次在国际知名的学术性刊物上见到这位美女时,不禁叹为天人,毕竟在这样严肃的学术期刊上,还从未出现 ...

  7. 夺命雷公狗—angularjs—8—ng-class的简单用法

    我们在正常的业务处理中往往会遇到一些逻辑类的问题,比如各行换色,现在angularjs里面也给我们提供了一个小小的的class处理的方式,废话不多说,如下所示: <!doctype html&g ...

  8. PAT乙级 1022. D进制的A+B (20)

    1022. D进制的A+B (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 输入两个非负10进制整数A和 ...

  9. 开源软件free download manager在windows defender中报毒

    从官网上下载的fdm lite 3.9.6,从图片中可以看出安装包有数字签名,windows defender报毒,在线杀毒也检出木马,官网的程序更新到了3.9.6版本,在sourceforge上的源 ...

  10. RMQ(非log2储存方法)

    2016-03-31 RMQ 难度级别:B: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 长度为n的数列A,以及q个询问,每次询问一段区间 ...