吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4381|回复: 15
收起左侧

[其他转载] 【笔记】php学习之自定义mysql操作类

[复制链接]
protea_ban 发表于 2017-1-30 20:06
[PHP] 纯文本查看 复制代码
<?php

/**
 * Created by PhpStorm.
 * Date: 2017/1/16
 * Time: 16:36
 */
class mysql
{
    /**
     * 报错函数
     *
     * @param  string $error
     */
    function err($error){
        die("对不起,您的操作有误,错误原因为:".$error);//die有两种作用 输出和终止 相当于 echo和exit的组合
    }

    /**
     * 连接数据库
     *
     * @param string $dbhost  主机名
     * @param string $dbuser  用户名
     * @param string $dbpsw   密码
     * @param string $dbname  数据库名
     * @param string $dbcharset 字符集/编码
     * [url=home.php?mod=space&uid=155549]@Return[/url] bool     连接成功或不成功
     */
    function connect($config){
        extract($config);
        if(!($con = mysql_connect($dbhost,$dbuser,$dbpsw))){//mysql_connect连接数据库函数
            $this -> err(mysql_error());
        }
        if(!(mysql_select_db($dbname,$con))){//mysql_select_db选择数据库的函数
            $this -> err(mysql_error());
        }
        mysql_query("set names".$dbcharset);//使用mysql_query 设置编码 格式:mysql_query("set names utf8")

    }

    /**
     * 执行sql语句
     *
     * @param string $sql
     * @return resource 返回执行成功的资源符或执行失败
     */
    function query($sql){
        if(!($query = mysql_query($sql))){
            $this -> err($sql."<br />".mysql_error());
        }else{
            return $query;
        }
    }

    /**
     * 列表
     *
     * @param resource $query   sql语句通过mysql_query执行出来的资源
     * @return array    返回列表数组
     */
    function findAll($query){
        while($rs = mysql_fetch_array($query,MYSQL_ASSOC)){//mysql_fetch_arrary函数把资源转换成数组,一次转换一行出来
            $list[] = $rs;
        }
       return isset($list)?$list:"";
    }

    /**
     * 找到单条数据
     *
     * @param resource $query   sql语句通过mysql_query执行出来的资源
     * @return array    返回单条信息数组
     */
    function findOne($query){
        $rs = mysql_fetch_array($query,MYSQL_ASSOC);
        return $rs;
    }

    /**
     * @param resource $query    sql语句通过mysql_query执行出来的资源
     * @param int $row
     * @param int $filed
     * @return 返回指定行的指定字段的值
     */

    function findResult($query,$row = 0,$filed = 0){
        $rs = mysql_result($query,$row,$filed);
        return $rs;

    }

    /**
     * 添加函数
     *
     * @param string $table 表名
     * @param array $arr
     * @return int
     * 添加数组(包含字段和值的一维数组)
     */
    function insert($table,$arr){
        //$sql="insert into 表名(多个字段)values(多个值)"
        foreach ($arr as $key=>$value){
            $value = mysql_real_escape_string($value);
            $keyArr[] = "`".$key."`";//把$arr数组中的键名保存到$keyArr[]数组当中
            $valueArr[] = "`".$value."`";//把$arr数组当中的键值保存到$valueArr当中,因为值多为字符串,而sql语句里面insert当中如果是字符串的话要加单引号,所以这个地方要加上单引号

        }
        $keys = implode(",",$keyArr);//implode函数是把数组组合成字符串 implode(分隔符,数组)
        $values = implode(",",$valueArr);
        $sql = "insert into ".$table."(".$keys.")values(".$values.")";
        $this -> query($sql);//调用类自身的query(执行)方法执行这条sql语句
        return mysql_insert_id();


    }

    /**
     * 修改函数
     *
     * @param string $table 表名
     * @param array $arr
     * 修改数组(包含字段和值的一维数组)
     * @param string $where 条件
     */
    function update($table,$arr,$where){
        //update 表名 set 字段=字段值 where....
        foreach ($arr as $key=>$value){
            $value = mysql_real_escape_string($value);
            $keyAndvalueArr[] = "`".$key."`='".$value."'";
            $keyAndvalues = implode(",",$keyAndvalueArr);
            $sql = "update ".$table." set ".$keyAndvalues." where ".$where;//修改操作 格式
            $this -> query($sql);
        }
    }


    /**
     * 删除函数
     *
     * @param string $table 表名
     * @param string $where 条件
     */
    function del($table,$where){
        $sql = "delete from ".$table." where ".$where;//删除sql语句 格式: delete frome 表名 where 条件
        $this -> query($sql);
    }



}

免费评分

参与人数 4吾爱币 +3 热心值 +3 收起 理由
yyck653 + 1 + 1 我很赞同!
yuedingwangji + 1 好好学习,天天向上
loooooooong + 1 + 1 用心讨论,共获提升!
zhaogang5807 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zqjyh 发表于 2017-1-30 21:26
protea_ban 发表于 2017-1-30 21:21
恩 学习php必须经过的一个过程

对,可惜当时学的时候并没有写过。  还是重新写一下 巩固一下才好
头像被屏蔽
zhaogang5807 发表于 2017-1-30 20:14
 楼主| protea_ban 发表于 2017-1-30 20:15
psx1lin 发表于 2017-1-30 20:56
教程很详细
唯有我最酷 发表于 2017-1-30 21:06
前来围观
zqjyh 发表于 2017-1-30 21:07
可以,学习了
 楼主| protea_ban 发表于 2017-1-30 21:21

恩 学习php必须经过的一个过程
小小欣 发表于 2017-1-30 22:34
我觉得我的php白学了................
逗啊逗 发表于 2017-1-30 23:19 来自手机
我好像学了假的php
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-30 12:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表