• Mysqli面向过程连接


    Myslqi扩展

    连接数据库模板

    <?php

    /* Connect to a MySQL server  连接数据库服务器 */

    $link = mysqli_connect(

        'localhost',  /* The host to connect to 连接MySQL地址 */

        'jian',      /* The user to connect as 连接MySQL用户名 */

        '123456',  /* The password to use 连接MySQL密码 */

        'jian');    /* The default database to query 连接数据库名称*/

    if (!$link) {

        printf("Can't connect to MySQL Server. Errorcode: %s ", mysqli_connect_error());

        exit;

    }else

        echo '数据库连接上了!';

    /* Close the connection 关闭连接*/

    mysqli_close($link);

    ?>

    数据库连接的天龙八步:

    1、连接数据库
    连接:mysqli_connect

    2、成功与否判断
    连接错误号:mysqli_connect_errno
    连接错误信息:mysqli_connect_error
    3、选择数据库
    选择库:mysqli_select_db
    执行错误号:mysqli_errno
    执行错误信息:mysqli_error
    4、设置字符集
    mysqli_set_charset
    5、准备SQL语句
    说明:符合SQL语法的任意语句
    6、执行SQL语句
    执行:mysqli_query
    7、处理数据
    查询时返回查询到数据行数:mysqli_num_rows
    数据操作是影响的行数:mysqli_affected_rows
    mysqli_fetch_row:获取一条数据的索引数组
    mysqli_fetch_assoc:获取一条数据的关联数组
    mysqli_fetch_array:获取一条数据的指定数组,
    mysqli_fetch_all:获取结果集中的所有数据,
    类型取决于第二个参数
    第二个参数:MYSQLI_NUM(索引数组)
    MYSQLI_ASSOC(关联数组)
    MYSQLI_BOTH(索引和关联都有)
    8、释放资源、关闭连接
    释放资源:mysqli_free_result
    关闭连接:mysqli_close

    示例:
    // 1、连接数据库
    $link = @mysqli_connect('localhost','root','123456');
    // 2、成功与否判断
    if (!$link) {
    exit('error('.mysqli_connect_errno().'):'.mysqli_connect_error());
    //die 该函数是 exit() 函数的别名。
    }
    // 3、选择数据库
    if (!mysqli_select_db($link,'test')) {
    echo 'error('.mysqli_errno($link).'):'.mysqli_error($link);
    mysqli_close($link);
    die;
    }
    // 4、设置字符集
    mysqli_set_charset($link,'utf8');

    设置从数据库服务器发送数据到数据库服务器时使用的默认字符集。
    // 5、准备SQL语句
    $sql = 'select * from star where id > 100';
    // 6、执行SQL语句
    $result = mysqli_query($link,$sql);
    if ($result && mysqli_num_rows($result)) {
    // 7、处理数据
    /
    mysqli_fetch_row:获取一条数据的索引数组
    mysqli_fetch_assoc:获取一条数据的关联数组
    mysqli_fetch_array:获取一条数据的指定数组,
    类型取决于第二个参数
    mysqli_fetch_all:获取结果集中的所有数据,
    类型取决于第二个参数
    第二个参数:MYSQLI_NUM(索引数组)
    MYSQLI_ASSOC(关联数组)
    MYSQLI_BOTH(索引和关联都有)
    var_dump(mysqli_fetch_all($result,MYSQLI_ASSOC));
    /
    while ($row = mysqli_fetch_array($result,MYSQLI_NUM)) {
    var_dump($row);
    }
    } else {

    }
    // 8、释放资源、关闭连接
    mysqli_free_result($result);
    mysqli_close($link);

     

    具体实现

     //连接数据库操作
    //连接数据库,并通过$link保存链接
    $link = mysqli_connect('localhost','root','','project5');

    Mysqli_connect(主机名/IP,用户名,密码,数据库名,端口号,socket通信);

    Mysqli_connect 函数有六个参数,当省略参数时自动使用php.ini中配置的默认值

    当数据库连接失败时,mysqli_connect提示的错误信息并不友好。可以通过下面的方式解决

    $link = @mysqli_connect('localhost','root','','project5') or exit('数据库连接失败');

    @用于屏蔽错误信息,or是比较运算符,只有当左边表达式为false时才会执行右边的表达式,‘exit’用于停止脚本,同时可以输出错误信息。

    当需要详细信息时,可以通过mysqli_connect_error()函数获取。

    下面我用两种方式打印保存的连接$link

    echo "<pre>";
    print_r($link);
    var_dump($link);

    在使用命令行工具操作数据库时,需要使用SET NAMES 设置字符集

    在PHP中也需要设置字符集

    mysqli_set_charset() 函数规定当与数据库服务器进行数据传送时要使用的默认字符集。

    mysqli_set_charset($link,'utf8'); //成功返回true失败返回false

    只有保持PHP脚本文件、web服务器返回的编码、网页的<meta>标记、PHP访问Mysql使用的字符集集多统一时才能避免中文乱码问题。

    https://www.jb51.net/article/22501.htm(具体文档)

    php页面为utf编码 
    header("Content-type: text/html; charset=utf-8"); 

    <meta charset="UTF-8">//网页为uft8编码

    设置查询的数据为utf8字符集(set names utf8同时设置客户端字符集,连接层字符集和查询结果(如结果集或错误消息)返回给客户端的字符集)

    mysqli_query($link,"set names utf8");//PHP访问Mysql使用的字符集

    mysqli_query() 函数执行某个针对数据库的查询

    mysqli_set_charset和SET NAMES优劣分析(mysqli_set_charset除了做了”SET NAMES”以外, 还多做了一步)所有最好用mysqli_set_charset(详情请看下面链接的文章http://www.laruence.com/2010/04/12/1396.html).

    https://blog.csdn.net/zhangfeng1133/article/details/46777883

    $link = @mysqli_connect('localhost','root','','project5') or exit('数据库连接失败');  //数据库连接结果
    mysqli_set_charset($link,'utf8'); //成功返回true失败返回false
    mysqli_query($link,'use news');       //选择数据库(SQL语句方式)
    mysqli_query($link,'set names utf8');  //设置字符集(SQL语句方式)
    //执行SQL语句,并获取结果集
    $result = myslqi_query($link,'show databases');
    if(!$result){
        exit('执行失败。错误信息:'.mysqli_error($link));
    }
    echo "<pre>";
    print_r($result);
    var_dump($result);

    //处理结果集$result

    mysql_num_rows($result)  从结果集中获取数据记录的个数

    mysql_num_fields($result)  从结果集中获取数据记录列的个数

    mysql_fetch_row()      该函数将一条结果记录返回,并以一个普通索引数组的形式保存

    mysql_fetch_assoc()     该函数将一条结果记录返回,并以一个普通关联数组形式保存

    mysql_fetch_array()     默认同时以索引数组和关联数组保存,三个参数MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH

    mysql_fetch_object()    以一个对象的形式返回一条结果记录,他的各个字段需要以对象的形式进行访问

    var_dump(mysqli_num_rows($result));(从结果集中获取数据记录的个数;结果如下)
    H:wampwww	est	est.php:48:int 6  
    var_dump(mysqli_fetch_all($result)); //获取所有结果,并以数组方式返回
    print_r(mysqli_fetch_all($result));  //这种方式看的比较直观

     

     

    总结:

    var_dump(mysqli_fetch_array($result));
    var_dump(mysqli_fetch_assoc($result));
    var_dump(mysqli_fetch_row($result));

     

    从结果集中获取数据记录的个数

  • 相关阅读:
    Python中使用MongoEngine
    Python中MongoDB使用
    JAVA 日期相关API (JDK 8 新增)
    JAVA 日期相关API(JDK 8 之前)
    StringBuffer 和StringBuilder
    String 类型转换
    String类常用方法
    JAVA String类
    关于线程锁的释放和保留
    java线程同步--使用线程池
  • 原文地址:https://www.cnblogs.com/pittle-z/p/11743424.html
Copyright © 2020-2023  润新知