php的mysql\mysqli\PDO(二)mysqli

news/2024/7/16 9:34:00

原文链接: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)\n", $row[0], $row[1]);

/* associative array */
$row = $result->fetch_array(MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* associative and numeric array */
$row = $result->fetch_array(MYSQLI_BOTH);
printf ("%s (%s)\n", $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());
}

转载于:https://www.cnblogs.com/orlion/p/5350847.html


http://www.niftyadmin.cn/n/648270.html

相关文章

Java IO: InputStreamReader和OutputStreamWriter

作者: Jakob Jenkov 译者: 李璟(jlee381344197gmail.com) 本章节将简要介绍InputStreamReader和OutputStreamWriter。细心的读者可能会发现,在之前的文章中,IO中的类要么以Stream结尾,要么以Reader或者Writer结尾,那这两个同时以字…

php 活动报名,活动报名小程序 - 微信小程版的活动在线报名,支持付费活动发布! – 基于ThinkPHP和Bootstrap的极速后台开发框架...

活动报名小程序是一款基于FastAdmin和ThinkPHP开发的活动报名小程序应用插件,通过PC后端可在线发布活动信息;可设置活动费用,活动时间,人数限制等等信息,同时还可以多模板颜色自定义等功能。功能特性1、幻灯管理可在线…

php 数据摘要,php摘要生成函数(无乱码)

在使用的时候,得先把要生成摘要的内容strip_tags()一下,当然,你也可以把strip_tags()直接添加到函数中,我没有搞,自己添加吧。下面是函数:function cutstr($string, $length,$charset,$dot) {//字符&#x…

php可以写系统吗,php – 文件系统不可写

我成功地在Web主机中安装了Drupal 7.安装模块后,出现错误错误,状态报告给出了以下错误消息:File system Not writableThe directory /Applications/MAMP/tmp/PHP does not exist.You may need to set the correct directory at the file system settings page orcha…

WordPress Import 上传的文件尺寸超过php.ini中定义的upload_max_filesize值--gt;解决方法。...

參考一: WordPress Importer上传导入备份文件时遇到这样一个错误,提示“上传的文件尺寸超过 php.ini 中定义的 upload_max_filesize 值”。问题原因是php.ini文件中限制了最大上传文件大小,默觉得2MB。解决方法找到这个文件依照下文方法略微改…

dba社区 mysql,Mysql B+树

B树https://www.cndba.cn/Supreme_Aaron/article/4442 B树https://www.cndba.cn/Supreme_Aaron/article/4442 Oracle用的B树。Mysql用的B树。https://www.cndba.cn/Supreme_Aaron/article/4442优缺点B树矮胖(相同数据情况下B树层次少。叶子节点多)>搜索起来快B树天然带排序。…

java EE中statement和preparestatement的区别

这两个在数据库中的功能相似,具体区别是什么呢?预编译不是很懂。

java jsplitpane,Java JSplitPane

JSplitPane用于划分两个组件。这两个组件根据外观和实现方式进行划分, 用户可以调整它们的大小。如果两个组件的最小大小大于拆分窗格的大小, 则分隔符将不允许你调整其大小。拆分窗格中的两个组件可以使用JSplitPane.HORIZONTAL_SPLIT从左到右对齐, 或者使用JSplitPane.VERTIC…