zoukankan      html  css  js  c++  java
  • php的mysqlmysqliPDO(二)mysqli

    原文链接:http://www.orlion.ga/1147/

    mysqli有面向对象风格和面向过程风格,个人感觉还是用面向对象风格比较好(毕竟是面向对象)

    1、mysqli::_construct()

    mysqli::__construct ([ string $host = ini_get("mysqli.default_host") [, string $username = ini_get("mysqli.default_user") [, string $passwd = ini_get("mysqli.default_pw") [, string$dbname = "" [, int $port = ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket") ]]]]]] )
    
    mysqli mysqli_connect ([ string $host = ini_get("mysqli.default_host") [, string $username= ini_get("mysqli.default_user") [, string $passwd = ini_get("mysqli.default_pw") [,string $dbname = "" [, int $port = ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket") ]]]]]] )

        $host、$username、$passwd、$dbname、$port不用多说了,规则与mysql差不多。

    2、mysqli::close()

    //面向对象风格
    bool mysqli::close ( void )
    //面向过程风格
    bool mysqli_close ( mysqli $link )
    成功时返回 TRUE, 或者在失败时返回 FALSE。$link:由mysqli_connect() 或 mysqli_init(void) (该函数提供一个mysqli对象供mysqli_options()和mysqli_real_connect()使用)返回的链接标识。

        这个与mysql_close()差别在于mysql_close()可以不提供参数而关闭上一个连接。

    3、mysqli::query()

    mixed mysqli::query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
    
    mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT] )

        $resultmode有两种取值方式:MYSQLI_USE_RESULT 和MYSQLI_STORE_RESULT(默认值),区别在于MYSQLI_USE_RESULT模式下取结果时每次都要从服务器上取结果而MYSQLI_STORE_RESULT则是将结果一步到位缓存到用户程序空间中。所以当查询结果数据量特别大时用MYSQLI_USE_RESULT,MYSQLI_STORE_RESUL则速度非常快。

        返回值:失败时返回 FALSE,通过mysqli_query() 成功执行SELECT, SHOW, DESCRIBE或 EXPLAIN查询会返回一个mysqli_result对象,其他查询则返回TRUE

     

    4、遍历结果函数

    // 面向对象风格
    mixed mysqli_result::fetch_array ([ int $resulttype = MYSQLI_BOTH ] )
    // 面向过程风格
    mixed mysqli_fetch_array ( mysqli_result $result [, int $resulttype = MYSQLI_BOTH ] )

        例:

    $query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
    $result = $mysqli->query($query);
    
    /* numeric array */
    $row = $result->fetch_array(MYSQLI_NUM);
    printf ("%s (%s)
    ", $row[0], $row[1]);
    
    /* associative array */
    $row = $result->fetch_array(MYSQLI_ASSOC);
    printf ("%s (%s)
    ", $row["Name"], $row["CountryCode"]);
    
    /* associative and numeric array */
    $row = $result->fetch_array(MYSQLI_BOTH);
    printf ("%s (%s)
    ", $row[0], $row["CountryCode"]);

        类似的函数有:mysqli_result::fetch_assoc和mysqli_result::fetch_row、mysqli_result::fetch_object。

     

    5、释放result函数

    // 面向对象风格
    void mysqli_result::free ( void )
    oid mysqli_result::close ( void )
    void mysqli_result::free_result ( void )
    // 面向过程风格
    void mysqli_free_result ( mysqli_result $result )

     

    6、其他函数

        mysqli::real_escape_string(string $sql)转义sql。

     

        一次执行多条sql可以用mysqli对象的multi_query()方法:

    bool mysqli::multi_query ( string $query )

        传递参数时需要把多条SQL命令写在同一个字符串中作为参数传给multi_query(),多个SQL之间使用分号(;)分隔。如果第一条SQL命令在执行时没有出错,这个方法就会返回TRUE,否则将返回FALSE。

        因为multi_query参数中每条SQL都可能返回一个结果,所以处理过程就变成了:

    if ($mysqli->multi_query($sql)) {
        do {
            if ($result = $mysqli->store_result()) {
                while ($row = $result->fetch_row()) {
                    foreach ($row as $data) {
                        var_dump($data);
                    }
                }
                $result->close();
            }
            if ($mysqli->more_results()) {
                echo '----------------';
            }
        } while($mysqli->next_result());
    }
  • 相关阅读:
    来自平时工作中的javascript知识的积累---持续补充中
    javascript function
    CSS3 3D变换
    HTTP1.1缓存策略
    jQuery插件开发
    mac下好用的工具收录(慢慢完善)
    mac 彻底卸载vscode
    Git冲突:commit your changes or stash them before you can merge. 解决办法(转载)
    关于vscode使用的一些设置
    (linux服务器)apache开启gzip的配置以及效果对比
  • 原文地址:https://www.cnblogs.com/orlion/p/5350847.html
Copyright © 2011-2022 走看看