我是靠谱客的博主 义气墨镜,最近开发中收集的这篇文章主要介绍php数据库八部,MySQL—day4(php),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、 MySQL天龙八部

1.连接数据库

mysqli_connect(主机,用户名,密码)

@:不显示系统错误

$link = @mysqli_connect('localhost','root','');

2.判断是否连接成功

一般只是处理出现错误的情况。如果错误处理完成之后继续向后。

mysqli_connect_error()

mysqli_connect_errno()

if($link===false){

echo mysqli_connect_error($link);

echo mysqli_connect_errno($link);

die;

}

3.选择数据库

mysqli_select_db()

mysqli_error()

mysqli_errno()

$res = mysqli_select_db($link,'xmr');

if($res===false){

echo mysqli_error($link);

echo mysqli_errno($link);

die;

}

4.设置字符集

mysqli_set_charset()

$res = mysqli_set_charset($link,'utf8');

if($res===false){

echo mysqli_error($link);

echo mysqli_errno($link);

die;

}

5.准备SQL语句

$sql = 'select * from student;';

6.执行SQL

mysqli_query();

$res = mysqli_query($link,$sql);

if($res===false){

echo mysqli_error($link);

echo mysqli_errno($link);

die;

}

7.处理结果集

从结果集中取得行,一条条获取

mysqli_fetch_row()

从结果集中取得一行作为数字数组或关联数组

mysqli_fetch_array()

// 数字数组

$row=mysqli_fetch_array($result,MYSQLI_NUM);

// 关联数组

$row=mysqli_fetch_array($result,MYSQLI_ASSOC);

从结果集中取得一行作为关联数组

mysqli_fetch_assoc()

从结果集中取得所有行作为关联数组

mysqli_fetch_all()

// 获取数据

mysqli_fetch_all($result,MYSQLI_ASSOC);

假设 websites 表有一个自动生成的 ID 字段。返回最后一次查询中的 ID

mysqli_insert_id()

从不同的查询中输出所影响记录行数

mysqli_affected_rows()

8.释放资源关闭数据库连接

mysqli_free_result()

mysqli_close();

二、 代码重用的办法

1.代码包含

将基础代码比如连接,选择数据库,设置字符集写在一个文件中,需要使用的地方直接引用进来。

1) 添加数据

先创建一个文章数据表:

463c5b6ee3eb

image.png

CREATE TABLE `article` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`title` varchar(255) NOT NULL COMMENT '文章的标题',

`content` text NOT NULL COMMENT '文字的内容',

`user_name` varchar(30) NOT NULL COMMENT '用户名',

`add_time` datetime NOT NULL COMMENT '添加时间',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

创建前端页面:

463c5b6ee3eb

image.png

设计后端的逻辑处理:

463c5b6ee3eb

image.png

2) 查看发表的文章

463c5b6ee3eb

image.png

3) 文章列表

463c5b6ee3eb

image.png

4) 文章的删除

463c5b6ee3eb

image.png

2.函数封装

1) 数据连接函数

需要做什么: 连接数据 设置字符集 选择数据库

返回: 连接的资源

函数的参数: 主机 端口 用户名 密码 字符集 数据库

默认值: 端口 字符集 默认值一般设计在函数的最后

/*

*@desc 数据库连接函数

*@param $host string 数据库的主机地址

*@param $user string 数据库的用户名

*@param $pass string 数据库的密码

*@param $db_name string 数据库的数据库名称

*@param $port int 数据库的端口 默认3306

*@param $charset string 字符集 默认utf8

*@return false | $link bool|object 连接失败|连接的资源

*/

function db_connect($host,$user,$pass,$db_name,$port=3306,$charset='utf8'){

global $error;

global $errno;

//判断端口是否默认

if($port!=3306){

$host = $host . ':' . $port;

}

//1. 连接数据库

$link = @mysqli_connect($host,$user,$pass);

//2. 判断是否连接成功

if($link===false){

$error = mysqli_connect_error($link);

$errno = mysqli_connect_errno($link);

return false;

}

//3. 选择数据库

$res = mysqli_select_db($link,$db_name);

if($res===false){

$error = mysqli_error($link);

$errno = mysqli_errno($link);

return false;

}

//4. 设置字符集

$res = mysqli_set_charset($link,$charset);

if($res===false){

$error = mysqli_error($link);

$errno = mysqli_errno($link);

return false;

}

return $link;

}

2) 错误处理函数

/*

*@desc 获取错误信息

*@return array 错误信息数组

*/

function get_error(){

global $error;

global $errno;

global $debug;

if($debug){

return [

'error' => $error,

'errno' => $errno

];

}

}

3) 插入函数

/*

* @desc db_insert 数据库插入操作

* @param Slink object 数据库的连接资源

* @param Stable string 数据表

* @param $data array 要插入的数据

* @param $get_ id bool 是否需要返回插入行的ID

* @return bool/int bool 表示是否插入成功,int表示插入行的ID

*/

function db_insert($link, $table, $data, $get_id=false) {

global $error;

global $errno;

if(!is_array($data)) {

$error = ' 数据库数据的插入格式不合法,必须是数组格式' ;

$errno = 1001;

return false;

}

$data = parse_array($data) ;

$fildes = implode(', ' ,array_keys($data)) ;

$values = implode(', ' ,array_values($data)) ;

$sql = "insert into {$table} ({$fildes}) values ({$values}) ;";

//执行SQL

$rs = mysqli_query ($link, $sql) ;

if($rs===false) {

$error = 'sq1 语法错误';

$errno = 1002;

return false;

}

if($rs && mysqli_affected_rows($link)) {

if($get_id) {

return mysqli_insert_id($link) ;

}

return true ;

}

$error = '插入的数据不匹配';

$errno = 1003;

return false;

}

9) 删除函数

/*

*@desc delete 数据库刪除操作

*@param $link object 数据库连接资源

*@param $table string 数据表

*@param $where string 条件

*@retuan bool true 表示刪除成功

*/

function db_delete($link, $table, $where) {

global $error;

global $errno;

if(!is_string ($where)) {

$error = '刪除条件珸法不正碗,必須是字符串格式';

$errno = 1004;

return false;

}

$sql = "delete from {$table} where $where";

$rs = mysqli_query ($link, $sql);

if($rs=== false){

$error = 'sql 语法错误';

$errno = 1002;

return false;

}

if($rs && mysqli_affected_rows($link)) {

return true;

}

$error = ' 未找到刪除的数据';

$errno = 1005;

return false;

}

10) 更新函数

/**

*@desc 更新操作

*@param $link object 连接状态

*@param $table string 数据表

*@param $set mixd 要修改的数据数组/字符串

*@param $where string 更新条件

*/

function db_update ($link, $table, $set, $where) {

global $error;

global $errno;

if(!is_string($where)) {

$error ='跟新条件语法不正确,必须是字符串格式';

$errno = 1007;

return false;

}

if(is_array($set)){

$set = parse_array($set);

$set = parset_set ($set);

}

//如果输入和字符串都不是的话,错误处理

if(!is_string($set)){

$error = '更新新语法错误';

$errno = 1006;

return false;

}

$sql = "update {$table} set {$set} where $where; ";

$res = mysqli_query ($link, $sql) ;

//判断语法是否错误

if($res===false) {

$error = 'sql 语法错误';

$errno = 1002;

return false;

}

//正确更新返回true

if($res && mysqli_affected_rows($link)) {

return true ;

}

//没有跟新的内容

return true;

}

12) 查询函数

/*

*@desc select 数据库查询操作

*@param $fields string 数据库的字符段

*@param $table string 结果集类型

*@param $where string 条件

*@param $group string 以字段进行分组

*@param $having string 将执行$group后返回的结果再次进行过滤

*@param $order string 排序

*@param $limit string 限制条件

*@retuan bool true 表示查询成功

*/

function db_select($link, $fields, $table , $arr_type,$where=null, $group=null, $having=null, $order=null, $limit=null){

if(is_string($table)){

$table = $table;

}else if(is_array($table)){

$tables = implode(',',$table);

}

if(is_string($fields)) {

$fields = $fields;

}else if(is_array($fields)){

$fields = implode(',',$fields);

}

$sql = "select {$fields} from {$table}";

if($where){

if(!is_string ($where)){

$error = '刪除条件珸法不正碗,必須是字符串格式';

$errno = 1004;

return false;

}

$sql .= " where {$where}";

}

if ($group) {

$sql .= " group by $group";

}

if($having) {

$sql .= " having {$having}";

}

if($order){

$sql .= " order by {$order}";

}

if($limit){

$sql .= " limit {$limit}";

}

$res = mysqli_query($link, $sql);

if($res && mysqli_num_rows($res)){

return mysqli_fetch_all($res, $arr_type);

}

return false;

}

三、创建php项目文件

pro

common:封装

lib:库

config:配置文件

upload:上传资源

api:接口返回

index:前端

admin:后端

static:静态文件

css

js

html

最后

以上就是义气墨镜为你收集整理的php数据库八部,MySQL—day4(php)的全部内容,希望文章能够帮你解决php数据库八部,MySQL—day4(php)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部