PHP数据库操作之基于Mysqli的数据库操作类库


本文整理自网络,侵删。

此类库简单、易用,便于你自己修改和对功能的改善,能解决大部分 PHP 项目中执行的 SQL 操作。

初步工作

首先,请大家下载这个类库 M.class.php 再下载一个 Mysqli 连接数据库的类库 MysqliDb.class.php(打包下载地址) 
新建一个 includes 的文件夹,将下载下来的两个 class 文件,放进去。
然后,请你在项目下创建一个 test.php 文件。注:UTF-8 文件格式

请先根据你机器的情况,填充以下代码,用于连接数据库:

代码如下:

header('Content-Type:text/html;Charset=utf-8');
define('ROOT_PATH', dirname(__FILE__));
define('DB_HOST', 'localhost'); //数据库服务器地址
define('DB_USER', 'root');  //数据库用户名
define('DB_PWD', '×××');//数据库密码
define('DB_NAME', '×××');  //数据库名称
define('DB_PORT', '3306');  //数据库端口
function __autoload($className) {
    require_once ROOT_PATH . '/includes/'. ucfirst($className) .'.class.php'; //自动加载 class 文件
}

好了,上面的这些操作都是初步工作,下面正式进入类库的讲解。

类库讲解

首先,我们得实例化 M.class.php,实例化很简单:

代码如下:

$m = new M(); //这步操作代表 M.class.php 中的所有功能都封装在了变量 $m 中

注:
1、M类库中的方法参数说明,请到 M.class.php 文件中看详细的注释,这里不再进行叙述。建议在学习的时候,对照着看下文件中的参数即注释。
2、讲解代码中用到的数据库结构为:

代码如下:

CREATE TABLE `user` (
  `id` int(8) unsigned NOT NULL auto_increment,
  `name` varchar(50) default NULL,
  `email` varchar(100) default NULL,
  `age` smallint(3) default NULL,
  `class_id` int(8) default NULL,
  `commit_time` int(10) default NULL,
  PRIMARY KEY  (`id`),
  KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

代码如下:

CREATE TABLE `class` (
  `class_id` int(8) NOT NULL auto_increment,
  `class_name` varchar(100) default NULL,
  PRIMARY KEY  (`class_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

并添加一条测试数据。

3、M类库中,大部分方法都分两中类型,即:SQL方法;拼接方法,具体在实例中可以看出
4、以下称述中的 M 为 M.class.php 文件

方法1、Insert() 添加数据

Insert 方法的全部使用案例如下:

代码如下:

$m->Insert("user", null, array('焦焦', 'liruxing1715@sina.com', '23', time())); // 拼接方法:往`user`表中添加一条数据,返回值为数据库影响的行数
$m->Insert("user", null, array('焦焦', 'liruxing1715@sina.com', '23', time()), true); // 功能同上,返回 last_insert_id(插入的增长id)
$m->Insert("INSERT INTO `user` (`name`, `email`, `age`, `commit_time`) VALUES ('张小花', 'zhangxiaohua@sina.com.cn', '22', '".time()."')"); //SQL方法,返回值为数据库影响的行数
$m->Insert("INSERT INTO `user` (`name`, `email`, `age`, `commit_time`) VALUES ('张小花', 'zhangxiaohua@sina.com.cn', '22', '".time()."')", true); // 同上,返回 last_insert_id

注:Insert 方法中的第二个参数若为null,可自动获得插入表除 auto_increment 字段之外的所有字段,详情请看M源文件;若要返回值为最后插入的 ID,那么请设置 Insert 方法的最后一个参数为 true(默认是false);

方法2、Update() 修改数据

update 方法的全部使用案例如下:

代码如下:

$m->Update("user", array('name'=>'李茹茹', 'age'=>24), "id=1"); //拼接方法,修改id为1的数据的名称为“李茹茹”;年龄为“24”,其方法的返回值为受影响的行数
$m->Update("UPDATE `user` SET `name`='李茹茹', `age`=24 WHERE id = 1"); //SQL 用法,功能同上

方法3、Del() 删除数据

Del 方法的全部使用案例如下:

代码如下:

$m->Del('user', 'id=3'); //拼接方法:删除`user`表中 id 为3的数据,返回受影响的行数
$m->Del("DELETE FROM `user` WHERE id=4"); //SQL方法:删除`user`表中 id 为4的数据,返回受影响的行数
$m->Del("DELETE FROM `user` WHERE id in (10, 11, 12)"); //SQL方法:删除多条数据,删除`user`表中 id 为 10、11、12 的数据,返回受影响的行数

阅读剩余部分

相关阅读 >>

mysql常用基准测试工具

mysql详解进行jdbc编程与增删改查方法

mysql在cmd里中文乱码解决办法

深入了解mysql中的join语句算法及优化方法

mysql中如何将字符串转为base64编码?

cmd登录不了mysql怎么解决?

一个简单的mysql数据浏览器

mysql explain的作用是什么?

代码详解mysql中关于事务的处理

mysql中行(记录)的详细操作(代码示例)

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...