博客列表 >数据库连接的基本步骤:mysqli_connect(), 数据库查询的基本步骤:mysqli_query()--2018.04.29上传

数据库连接的基本步骤:mysqli_connect(), 数据库查询的基本步骤:mysqli_query()--2018.04.29上传

张鑫的博客
张鑫的博客原创
2018年04月29日 15:19:301548浏览

总结:

数据库连接常用的函数:

$db = mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);  //连接数据库

mysqli_connect_errno($db);  //错误编号

mysqli_connect_error($db);  //错误信息

mysqli_set_charset($db,DB_CHAR);  //设置客户端默认字符编码集

数据库增删改查时常用的函数:

mysqli_query($db,$sql);  //执行sql语句的函数

mysqli_errno($db);   mysqli_error($db);   //执行sql语句出错后的错误信息

mysqli_free_result($res);  //释放结果集,仅针对查询操作

mysqli_affected_rows($db);  //被影响的记录数

mysqli_insert_id($db);  //新增主键的ID,执行新增操作时才会有

mysqli_num_rows($res);  //结果集中的记录数

mysqli_fetch_array($res);  //把结果集遍历到数组中,关联和索引都有

mysqli_fetch_array($res,MYSQL_ASSOC);  //把结果集遍历到关联数组中

mysqli_fetch_array($res,MYSQL_NUM);  //把结果集遍历到索引数组中

mysqli_multi_query($db,$sql);  //执行多条sql语句的函数

$res = mysqli_store_result($db);  //返回多个结果集中的最高一位

mysqli_more_results($db);  //判断结果集中是否还有更多的结果子集

mysqli_next_result($db);  //移动结果集指针

1.select:查询,读操作,返回的是结果集,可以想象成一张表
2.insert/update/delete:写操作,返回的是受影响的记录数量
注意:查询操作后要释放结果集
           新增,更新,删除都是危险操作,更新和删除都要有where条件

数据库连接配置文件代码:

实例

<?php
//创建数据库连接
//1.准备好连接要用的所有参数
define('DB_HOST','127.0.0.1');
define('DB_USER','root');
define('DB_PASS','root');
define('DB_NAME','demo');
define('DB_CHAR','utf8');

运行实例 »

点击 "运行实例" 按钮查看在线实例

数据库连接代码:

实例

<?php
//创建数据库连接
//1.引入配置文件
require 'mysqli_config.php';
//2.调用连接函数mysqli_connect();返回连接对象
$db = mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME)or die('连接失败'.mysqli_connect_error($db));

//3.设置客户端默认字符编码集
mysqli_set_charset($db,DB_CHAR);
//echo '<p>成功</p>';

运行实例 »

点击 "运行实例" 按钮查看在线实例

新增操作代码:

实例

<?php
require 'mysqli_connect.php';//连接数据库

//IGNORE:如果添加的数据已经存在,就会忽略,不会重复添加,要生效必须要有唯一索引字段
$sql = "INSERT IGNORE student SET name='张无忌',course='php',grade=90;";//准备sql语句

if (mysqli_query($db,$sql)){
    if (mysqli_affected_rows($db)>0){//判断被影响的记录数
        echo '成功添加了'.mysqli_affected_rows($db).'条数据,新增记录的主键ID是:'.mysqli_insert_id($db);
    }else{
        echo '没有记录被新增';
    }
}else{//出错
    exit(mysqli_errno($db).':'.mysqli_error($db));
}

//关闭数据库连接
mysqli_close($db);

运行实例 »

点击 "运行实例" 按钮查看在线实例

更新操作代码:

实例

<?php
require 'mysqli_connect.php';//连接数据库


$sql = "UPDATE student SET grade=96 WHERE id=8;";//准备sql语句

if (mysqli_query($db,$sql)){
    if (mysqli_affected_rows($db)>0){//判断被影响的记录数
        echo '成功更新了'.mysqli_affected_rows($db).'条数据';
    }else{
        echo '没有记录被更新';
    }
}else{//出错
    exit(mysqli_errno($db).':'.mysqli_error($db));
}

//关闭数据库连接
mysqli_close($db);

运行实例 »

点击 "运行实例" 按钮查看在线实例

删除操作代码:

实例

<?php
require 'mysqli_connect.php';//连接数据库


$sql = "DELETE FROM student WHERE id=8;";//准备sql语句

if (mysqli_query($db,$sql)){
    if (mysqli_affected_rows($db)>0){//判断被影响的记录数
        echo '成功删除了'.mysqli_affected_rows($db).'条数据';
    }else{
        echo '没有记录被删除';
    }
}else{//出错
    exit(mysqli_errno($db).':'.mysqli_error($db));
}

//关闭数据库连接
mysqli_close($db);

运行实例 »

点击 "运行实例" 按钮查看在线实例

查询操作代码:

实例

<?php
require 'mysqli_connect.php';//连接数据库


$sql = "SELECT name,grade FROM student;";//准备sql语句

if ($res = mysqli_query($db,$sql)){
    if (mysqli_num_rows($res)>0){//判断记录数
        while($row = mysqli_fetch_array($res,MYSQLI_ASSOC)){
            var_export($row);echo '<hr>';
        }
    }else{
        echo '没有查询到结果';
    }
}else{//出错
    exit(mysqli_errno($db).':'.mysqli_error($db));
}

//释放结果集
mysqli_free_result($res);

//关闭数据库连接
mysqli_close($db);

运行实例 »

点击 "运行实例" 按钮查看在线实例

多条sql语句执行代码:

实例

<?php
require 'mysqli_connect.php';//连接数据库

//按性别进行分组,查询男生和女生的篇平均分数
$sql = "SELECT sex,ROUND(AVG(grade),2) FROM student GROUP BY sex;";//准备多条sql语句

//查询成绩小于80分的学生
$sql.="SELECT name,grade FROM student WHERE grade<80;";

//查询年龄大于25岁的学生
$sql.="SELECT name,grade FROM student WHERE grade<80;";

if (mysqli_multi_query($db,$sql)){
    //获取结果集中的最高一位结果子集,如果它存在,就进行遍历
    while($res = mysqli_store_result($db)){

        if (mysqli_num_rows($res)>0){
            while($row = mysqli_fetch_array($res,MYSQLI_ASSOC)) {
                var_export($row);echo '<br>';
            }
            mysqli_free_result($res);  //释放当前结果子集
        }else{
            echo '当前结果子集中没有数据';
        }


        if (mysqli_more_results($db)){  //判断当前数据库中是否还有更多的结果集
            echo '<hr>';
            mysqli_next_result($db);  //下移指针
        }
    }
}else{//出错
    exit(mysqli_errno($db).':'.mysqli_error($db));
}


//关闭数据库连接
mysqli_close($db);

运行实例 »

点击 "运行实例" 按钮查看在线实例





声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议