12.PHP5.6.6自学笔记 mysqli扩展

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

mysqli扩展12.1mysqli简介:12.1.1mysqli扩展是类的集合:mysqli是代表操作MySQL数据库的一些类的集合。该扩展在PHP设置(php.ini)中一旦打开,即可使用——extension=php_mysqli.dll其中包括的类:mysqli类:代表PHP和Mysql数据库之间的一个连接。MySQLi_STMT类:预处理类,代表一个prepared语句。mysqli_result类:代表从一个数据库查询中获取的结果集。MySQLi_Driver类:MySQLi驱动.MySQLi_Warning类:代表一个Mysql警告。Themysqli_sql_exception类:mysqli异常处理类版本相关:mysqli扩展允许我们访问MySQL4.1及以上版本提供的功能。5.0以下需手工开启。所有mysqli文档示例使用的都是world数据库。mysqli扩展的持久化连接在PHP5.3中被引入。安装时默认打开。12.1.2概念相关:持久化连接背后的思想是客户端进程和数据库之间的连接可以通过一个客户端进程来保持重用,而不是多次的创建和销毁。这降低了每次需要创建一个新连接的开销,未使用的连接被缓存起来并且准备随时被重用。使用持久化连接的问题在于它们可能在客户端处于不可预知的状态。比如,一个表锁可能在客户端意外终止之前被激活。一个新的客户端进程重用这个持久化连接就会按照原样得到这个连接。这样,一个新的客户端进程为了更好的使用持久化连接,就需要做任何可能的清理工作,这样就增加了对程序员的负担。自动清理功能mysqli扩展的持久化连接提供了内建的清理处理代码。mysqli所做的清理工作包括:o回滚活动的事务o关闭并且删除临时表o对表解锁、o重置会话变量o关闭prepared语句(在PHP中经常发生)o关闭处理程序o释放通过GET_LOCK()获得的锁这确保了从连接池返回的持久化连接在客户端进程使用它之前处于干净的状态。mysqli扩展通过自动的调用C-API函数mysql_change_user()来完成这个清理工作。自动清理的特性有优点也有缺点。优点是程序员不再需要担心附加的清理代码,因为它们会自动调用。然而缺点就是代码可能会潜在的慢一点,因为每次从连接池返回一个连接都需要执行这些清理代码。这个自动清理的代码可以通过在编译php时定义MYSQLI_NO_CHANGE_USER_ON_PCONNECT来关闭。Note:支持持久化连接mysqli扩展在使用MysqlNativeDriver或MysqlClientLibrary(libmysql)时都支持持久化连接。12.1.3特点:mysqli有了以下几个方面的提高:更好的兼容性mysqli扩展可以很容易地使用MySQL数据库的新功能,即使MySQL数据库有了更新的版本,mysqli扩展也能很容易地支持。全面支持面向对象的编程mysqli扩展是一个封装好了的类,可以直接实例化该类的对象。即使对于不熟悉面向对象编程的编程人员来说,mysqli也能全程支持面向过程的编程。更快的速度和更好的安全性mysqli扩展执行SQL语句的速度比mysql扩展快很多,mysqli扩展支持MySQL新版本的密码杂凑(PasswordHashes)和验证程序,能更好地提供应用程序的安全性。支持预准备语句预准备语句可提高重复使用语句的性能,mysqli扩展提供了对预准备语句的支持。改进调试功能mysqli扩展改进了调试功能,提高了开发效率。12.2使用方法:12.2.1总述:当调用MySqli的方法、属性、过程时,与之相关的预定义常量也开始生效。MySqli是一种面向对象的扩展,有两种使用方法:1.面向对象的使用方法://实例化一个对象,完成调用功能$mysqli=NEWMYSQLI('localhost','root','','volunteer');//将要做的查询语句放入变量$sql中$sql=select*fromvol_msg;//执行sql语句,完全面向对象的$result=$mysqli-query($sql);2.使用传统的面向过程的方法$connect=mysqli_connect('localhost','root','','volunteer')ordie('Unaletoconnect');$sql=select*fromvol_msg;$result=mysqli_query($connect,$sql);12.2.2确保重要的信息数据的安全:使用基于系统的用户权限来确保只有拥有了Web服务器守护进程的用户才能够读取此文件。如果连接远程MySQL服务器,记住此信息要以明文的形式进行传送,除非采取必要的措施在传输中加密数据。还有,最好使用安全套接字层(SSL)加密。除了拥有必要解码权限的用户外,可利用脚本编码的产品对其他用户都不可读,也不影响代码的可执行性。ZendGuard在这方面是最好的解决方案,不过也有其他一些相同的产品。12.3MySQLi类功能概述MySQLi类面向对象接口面向过程接口描述属性(变量)$mysqli-affected_rowsmysqli_affected_rows()获取前一个Mysql操作的受影响行数$mysqli-client_infomysqli_get_client_info()返回字符串类型的Mysql客户端版本信息$mysqli-client_versionmysqli_get_client_version()返回整型的Mysql客户端版本信息$mysqli-connect_errnomysqli_connect_errno()返回最后一次连接调用的错误代码$mysqli-connect_errormysqli_connect_error()返回一个字符串描述的最后一次连接调用的错误代码$mysqli-errnomysqli_errno()返回最近的函数调用产生的错误代码$mysqli-errormysqli_error()返回字符串描述的最近一次函数调用产生的错误代码$mysqli-field_countmysqli_field_count()返回最近一次查询获取到的列的数目$mysqli-host_infomysqli_get_host_info()返回一个能够代表使用的连接类型的字符串$mysqli-protocol_versionmysqli_get_proto_info()返回使用的Mysql协议的版本信息$mysqli-server_infomysqli_get_server_info()返回Mysql服务端版本的信息$mysqli-server_versionmysqli_get_server_version()返回整型的Mysql服务端版本信息$mysqli-infomysqli_info()最近一次执行的查询的检索信息$mysqli-insert_idmysqli_insert_id()返回最后一次查询自动生成并使用的id$mysqli-sqlstatemysqli_sqlstate()返回前一个Mysql操作的SQLSTATE错误$mysqli-warning_countmysqli_warning_count()返回给定链接最后一次查询的警告数量方法(函数)mysqli-autocommit()mysqli_autocommit()打开或关闭数据库的自动提交功能mysqli-change_user()mysqli_change_user()更改指定数据库连接的用户mysqli-character_set_name(),mysqli-client_encodingmysqli_character_set_name()返回数据库连接的默认字符集mysqli-close()mysqli_close()关闭先前打开的数据库连接mysqli-commit()mysqli_commit()提交当前事务mysqli::__construct()mysqli_connect()打开一个到Mysql服务端的新的连接[注意:静态方法]mysqli-debug()mysqli_debug()执行调试操作mysqli-dump_debug_info()mysqli_dump_debug_info()将调试信息转储到日志中mysqli-get_charset()mysqli_get_charset()返回对象的字符集mysqli-get_connection_stats()mysqli_get_connection_stats()返回客户端连接的统计信息。仅可用于mysqlnd。mysqli-get_client_info()mysqli_get_client_info()返回字符串描述的Mysql客户端版本mysqli-get_client_stats()mysqli_get_client_stats()返回每个客户端进程的统计信息。仅可用于mysqlnd。mysqli-get_cache_stats()mysqli_get_cache_stats()返回客户端的zval缓存统计信息。仅可用于mysqlnd。mysqli-get_server_info()mysqli_get_server_info()没有文档mysqli-get_warnings()mysqli_get_warnings()没有文档mysqli::init()mysqli_init()初始化mysqli并且返回一个由mysqli_real_connect使用的资源类型。[不是在对象上,是它返回的$mysqli对象]mysqli-kill()mysqli_kill()请求服务器杀死一个Mysql线程mysqli-more_results()mysqli_more_results()检查一个多语句查询是否还有其他查询结果集mysqli-multi_query()mysqli_multi_query()在数据库上执行一个多语句查询mysqli-next_result()mysqli_next_result()从multi_query中准备下一个结果集mysqli-options()mysqli_options()设置选项mysqli-ping()mysqli_ping()ping一个服务器连接,或者如果那个连接断了尝试重连mysqli-prepare()mysqli_prepare()准备一个用于执行的SQL语句mysqli-query()mysqli_query()在数据库上执行一个查询mysqli-real_connect()mysqli_real_connect()打开一个到Mysql服务端的连接mysqli-real_escape_string(),mysqli_real_escape_string()转义字符串中用于SQL语句中的特殊字符,mysqli-escape_string()这个转换会考虑连接的当前字符集。mysqli-real_query()mysqli_real_query()执行一个SQL查询mysqli-rollback()mysqli_rollback()回滚当前事务mysqli-select_db()mysqli_select_db()为数据库查询选择默认数据库mysqli-set_charset()mysqli_set_charset()设置默认的客户端字符集mysqli-set_local_infile_default()mysqli_set_local_infile_default()清除用户为loaddatalocalinfile命令定义的处理程序mysqli-set_local_infile_handler()mysqli_set_local_infile_handler()设置LOADDATALOCALI

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功