脑动力:PHP函数速查效率手册(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-03 06:04:48

点击下载

作者:张建辉,叶刚

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

脑动力:PHP函数速查效率手册

脑动力:PHP函数速查效率手册试读:

前言

在互联网飞速发展的今天,各类网站应用已经深入到各个领域。在众多的网站开发技术中,PHP一直是首选的开发技术。PHP的全称是Hypertext Preprocessor(超文本预处理语言)。PHP不仅开发效率高,而且运行效率也很高。本书从PHP类库的角度,来讲解各种常见的PHP函数,并给出翔实的范例,帮助读者更好地掌握。为什么要学习PHP函数

PHP虽然是高效的网站开发技术,但是需要解决日益海量递增的用户需求,还是捉襟见肘。为了方便开发者开发,PHP将各类常用的功能进行封装,构成各类函数库。使用这些函数库,可以简化代码,降低代码编写的工作量。

随着PHP语言的发展,其对应的函数库也在逐步增加,其中包含的函数也飞速增加。对于开发人员,完全记忆和掌握这些函数,已经不太现实。用户往往只能记忆和掌握最常用的一些函数,而剩下的函数就需要查阅各种图书和资料。

笔者整理多年的项目代码,并通过论坛和搜索引擎收集整理大家对函数的讨论,整理编写了本手册,希望本手册可以帮助各位PHP开发人员更好地了解和使用PHP常见的函数。本书的特点

本书筛选了一些典型且常见的PHP函数库,对其中的函数进行详细讲解。本书的特点主要体现在以下几个方面。

●本书依照PHP函数库的划分,对函数进行详细讲解。这样的划分,便于读者对比和查找相关函数。

●采取由浅入深、循序渐进的方式,适合初级、中级开发人员逐步掌握繁杂的PHP函数的语法和使用方式。

●通过大量的示例来讲解每个PHP函数,使读者在学习和了解PHP函数的同时,能够更好地掌握其用法。

●对于在程序开发过程中经常遇到的问题,需要注意或说明的关键点予以特别的注释。使用说明

本书中的相关讲解说明如下所示。

●功能说明:说明PHP函数所具备的功能。

●函数语法:说明函数的原型,以及参数的含义。

●示例程序:说明函数应用的方式和方法。

●说明:针对一些特殊的操作进行说明。

●注意:针对一些经常出现的问题进行说明,提示读者在学习PHP函数时应该注意的内容。适合的读者

●PHP的初学者。

●PHP语言的研究人员。

●动态网站开发人员。

●PHP语言的爱好者。

●高校计算机专业的学生。

●从事计算机专业教学的教师。编者第1章MySQL服务器函数

MySQL数据库是一个开源的数据库管理系统。通过PHP编程语言和MySQL数据库的交互式数据传输,实现了动态网站的搭建。要想实现网站数据和MySQL数据库的数据传输,就要连接和操作数据库,在PHP中提供了非常丰富的MySQL服务器函数,能够实现管理MySQL数据库的很多功能。本章将详细讲解关于MySQL服务器的函数。1.1MySQL连接类函数

要实现网站和MySQL数据库数据的交互传输,首先就是要连接MySQL数据库服务器。PHP中提供了丰富的MySQL服务器连接类函数,能够使用多种方法连接MySQL服务器,熟练掌握每一种连接方式的特点,根据自己的需求选择适合自己的连接方式,对数据的传输效率会有很大的提高。本节将详细讲解MySQL服务器连接类函数。1.1.1 mysql_connect函数:打开MySQL服务器的非持久连接【功能说明】

该函数将打开一个非持久的到MySQL服务器的连接。如果函数执行成功,将返回一个MySQL服务器的连接标识符,执行失败则返回FALSE。注:该函数建立的连接是非持久性的,如果在脚本执行结束之前,没有调用函数mysql_close()来关闭打开的连接通道,则当脚本执行结束时,该函数的连接就会关闭。【函数语法】

其中,可选参数server是指定连接MySQL服务器的名称,该参数可以包括端口号,如果没有定义PHP配置文件中指令mysql.default_host的值,则连接数据库的名称和端口号是“localhost:3306”;可选参数username是指定连接服务器的用户名,默认值是服务器进程所有者的用户名;可选参数password是连接服务器用户所对应的密码,默认值是空密码;可选参数new_link的作用是,当函数mysql_connect()曾在前面用同样的参数调用过,该函数也总是打开新的连接;可选参数client_flags可以是以下常量的组合。

■MYSQL_CLIENT_SSL:使用SSL进行加密。

■MYSQL_CLIENT_COMPRESS:使用压缩协议。

■MYSQL_CLIENT_IGNORE_SPACE:允许函数名后的间隔。

■MYSQL_CLIENT_INTERACTIVE:允许关闭连接之前的交互超时非活动时间。

该函数的返回值为resource。【示例程序】下面使用本例函数打开一个MySQL服务器为本地的连接。代码如下:

以上代码的运行结果如图1.1所示。图1.1 运行结果

上述代码中,使用代码语句$link=mysql_connect("localhost","root","123456")or die("connection error: " .mysql_error());打开了一个"localhost"的MySQL服务器连接通道,连接的用户名是"root",密码是"123456"。

函数die()的作用是出现错误终止程序的执行,并返回括号中的内容。而函数mysql_error()的作用是返回一个错误信息。如果本例函数连接MySQL服务器失败,会终止以下脚本程序的运行,并返回"connection error:" 错误信息。上面可以看到返回的结果是Resource id#2,代表连接服务器成功。1.1.2 mysql_pconnect函数:打开MySQL服务器的持久连接【功能说明】

该函数将打开一个到MySQL服务器的持久性连接。如果连接成功将返回一个持久性连接的标识符,如果连接失败将返回FALSE。

该函数打开到MySQL服务器的连接是持久性的,而要想打开一个非持久性的连接,就要使用函数mysql_pconnect()。该函数和函数mysql_connect()的用法很相似。该函数有以下三个主要特点。

■当使用该函数连接MySQL服务器时,PHP机制会先去寻找之前是否用该用户名和密码连接过同一台服务器,如果连接过,则返回之前连接的持久性的连接标识。如果没有连接过,则尝试打开一个新的连接。

■使用该函数打开到MySQL服务器的连接后,该连接通道不会被MySQL服务器关闭,就连函数mysql_close()也无法关闭此连接。打开的连接是持久的,以备以后之用。

■使用该函数建立持久性连接,需要修改Apache和MySQL的配置,主要作用是防止超过连接到同一MySQL服务器的连接数目。【函数语法】

该函数的语法说明和函数mysql_connect()很相似,请参见mysql_connect()函数的函数语法。该函数的返回值为resource。【示例程序】下面使用了本例函数打开一个到MySQL服务器的持久性连接。代码如下:

以上代码的运行结果如图1.2所示。图1.2 运行结果

上述代码中,$link=mysql_pconnect("localhost","ad min","123456")or die("connection error: " .mysql_error());指定打开本地的MySQL服务器,使用的用户名是"admin",密码是"123456"。如果连接失败将终止以下脚本程序的运行,并返回错误的信息。上面返回的结果是一个错误的信息,connection error:Access denied for user ‘admin’@’localhost’(using password:YES),从这可以看到:MySQL服务器拒绝了用户是"admin"的访问,说明代码中指定的用户名是错误的,而指定的密码是正确的。1.1.3 mysql_ping函数:Ping一个MySQL服务器连接【功能说明】

该函数将Ping指定MySQL服务器的连接状态。如果连接断开,则自动尝试连接。如果到MySQL服务器的连接状态正常,则该函数返回TRUE,否则返回FALSE。注:该函数主要用于空闲了很久的脚本没有执行过,使用该函数Ping MySQL服务器的连接状态,如果断开了,则尝试自动连接。【函数语法】

其中,可选参数link_identifier是打开连接到MySQL服务器的连接标识符。该函数的返回值为布尔型。【示例程序】下面使用本例函数Ping本地MySQL服务器的连接状态,如果断开,则尝试连接。代码如下:

以上代码的运行结果如图1.3所示。图1.3 运行结果

上述代码中,成功地连接了指定MySQL服务器,使用$result=mysql_ping($link);来Ping指定的MySQL服务器的连接状态,如果断开则尝试自动连接。上面返回的结果是bool(true),则表明连接到MySQL服务器的状态正常或者已重新连接。1.1.4 mysql_client_encoding函数:获得当前连接字符集的名称【功能说明】

该函数将获得指定到MySQL服务器成功连接的字符集的名称。【函数语法】

其中,可选参数link_identifier是成功连接MySQL服务器的连接标识符,如果没有设置该参数的值,函数会使用最后一次打开的连接,如果没有找到可用的连接,该函数会无参数地自动调用函数mysql_connect()来创建一个新的连接,如果创建失败,最终没有找到可用的连接,则系统会发出E_WARNING级别的警告信息。该函数的返回值为字符型。【示例程序】下面使用本例函数获得当前连接默认的字符集的名称。代码如下:

以上代码的运行结果如图1.4所示。图1.4 运行结果

上述代码中,成功地连接了当地的MySQL服务器,使用mysql_client_encoding($link);代码语句获得了当前连接的字符集的名称,并输出当前连接的字符集,最后使用mysql_close($link);关闭打开的连接。1.1.5 mysql_close函数:关闭MySQL服务器的非持久连接【功能说明】

该函数将关闭一个由函数mysql_connect()打开的非持久性的连接。通常情况下,也不需要使用该函数,因为该函数只能关闭非持久性连接,而非持久性连接在脚本执行结束后就自动关闭了。关闭成功返回TRUE,失败返回FALSE。注:该函数不能关闭持久性连接,也就是说,不能关闭由mysql_pconnect()函数打开的连接。【函数语法】

其中,可选参数link_identifier是指定使用函数mysql_connect()打开的连接标识符,如果没有指定该参数的值,则该函数会自动寻找关闭最后使用函数mysql_connect()打开的连接。如果没有指定连接标识符,也没有找到使用函数mysql_connect()打开的连接,该函数会自动调用函数mysql_connect()来建立连接,然后将此连接关闭。如果找不到连接也无法创建,系统会发出一个E_WARNING级别的警告信息。该函数返回值为布尔型。【示例程序】下面使用函数mysql_connect()打开了一个非持久连接,然后使用本例函数将此非持久性连接关闭。代码如下:

以上代码的运行结果如图1.5所示。图1.5 运行结果

上述代码中,使用$link=mysql_connect("localhost","root","123456")or die("connection error: " .mysql_error());打开了一个到本地MySQL服务器的非持久连接,如果连接失败则终止以下程序的执行,并返回错误的信息。使用该代码语句,返回了Resource id 2,说明非持久连接创建成功了。而使用mysql_close($link);代码语句关闭了打开的非持久连接,返回的结果是bool(true),说明关闭非持久连接成功了。1.2MySQL SQL语句类函数

PHP的编程中需要从MySQL数据库中调取数据时,就要求用MySQL数据库的SQL语句,向MySQL数据库发送请求,通过执行处理SQL语句的请求来返回数据信息。PHP提供了丰富的SQL语句类函数,可以执行实现各种SQL语句的请求功能。本节将讲解和MySQL服务器SQL语句有关的函数。1.2.1 mysql_db_query函数:发送一条MySQL查询【功能说明】

该函数将根据查询结果返回一个正的MySQL结果资源号。执

行出错时返回FALSE。该函数会对INSERT(插入)/UPDATE(更新)/DELETE(删除)查询返回TRUE或FALSE来指示成功或失败。【函数语法】

其中,参数database是指定执行操作的数据库的名称;参数query是指定要查询的SQL语句;可选参数link_identifier是打开连接到MySQL服务器的连接标识符,如果没有设置此参数的值,该函数会寻找一个打开的连接,如果找不到打开的连接,则该函数会尝试调用函数mysql_connect()来建立一个。该函数的返回值为resource。注:PHP官方不提倡使用本例函数,使用函数mysql_select_db()和mysql_query()来代替。1.2.2 mysql_unbuf fered_query函数:向MySQL发送一条SQL查询,并不获取和缓存结果集【功能说明】

该函数将向指定成功连接的MySQL服务器发送一条SQL执行语句。该函数发送执行的SQL语句后,并不自动获取和缓存得到的结果集。这样的作用是当执行发送的SQL语句后,获得了一个数据非常庞大的结果集时,就会节省很大的内存空间。由于该函数不自动获取和缓存数据,当得到结果集中的第一条数据时,就可以立即对结果集进行操作,而没有必要将整个SQL语句都执行完再操作。要想自动获取和缓存结果集数据,就使用函数mysql_query()来实现。注:该函数不自动获取和缓存结果集是一个优点,但这也是有局限性的,该函数执行得到的结果集,不能使用在函数mysql_num_rows()和mysql_data_seek()上。还有一个弊端就是,当向MySQL服务器发送一条新的SQL语句之前,必须提取没有缓存的执行SQL语句返回的结果集。【函数语法】

其中,参数query是指定执行的SQL语句;可选参数link_identifier是指定成功连接MySQL服务器的连接标识符,当程序成功连接到多个MySQL服务器时,必须要指定该参数的值。该函数的返回值为resource。【示例程序】下面使用本例函数不自动获取和缓存结果集的执行SQL语句。代码如下:

以上代码的运行结果如图1.6所示。图1.6 运行结果

上述代码中,成功连接了指定的MySQL服务器之后,使用了代码语句$result=mysql_unbuffered_query($sql,$link);在连接成功的通道上,不自动获取和缓存结果集的执行了一条SQL语句$sql。该函数返回的数据变量$result是资源型数据,返回的值是Resource id#3。1.2.3 mysql_query函数:执行一条MySQL语句【功能说明】

该函数将执行一条指定的SQL操作语句。该函数仅对SELECT、SHOW、EXPLAIN或者DESCRIBE执行的操作语句返回一个资源标识符,如果执行错误则返回FALSE。而对于其他类型的SQL语句,该函数在执行成功后,返回TRUE,执行失败后返回FALSE。注:该函数非FALSE的返回值意味着发送的SQL语句是合法的,并且能够被服务器执行。而并不说明一定是成功返回了执行后的数据。该函数自动会对结果集进行读取和缓存,如果要运行非缓存的执行SQL语句,则使用mysql_unbuffered_query()函数。【函数语法】

其中,参数query是指定要执行的SQL语句;可选参数link_identifier是指定打开连接到MySQL服务器的连接标识符,如果没有设置该参数的值,则该函数会寻找以上的连接,如果还是找不到正常的连接,则该函数将尝试无参数调用mysql_connect()函数来建立一个新连接。该函数的返回值为resource。【示例程序】下面使用本例函数执行一条查询数据表数据的SQL语句。代码如下:

以上代码的运行结果如图1.7所示。图1.7 运行结果

上述代码中,成功地连接了本地MySQL服务器,使用代码语句mysql_select_db("project",$link);在服务器中选择了一个数据库"project",然后使用$sql="select * from language";书写了一条查询数据表language中数据的SQL语句。使用mysql_query($sql,$link);来执行这条SQL语句,返回一个资源型数据Resource id#3。1.2.4 mysql_info函数:获得最近一条执行SQL语句的信息【功能说明】

该函数将通过指定成功连接到MySQL服务器的连接,获得最近一条执行SQL语句的详细信息。该函数能识别以下几种SQL语句:

■INSERT INTO……SELECT…

■INSERT INTO……VALUES(……),(……),(……)…

■LOAD DATA INFILE…

■ALTER TABLE

■UPDATE

该函数只对以上语句的执行结果返回字符串,其他的任何语句都将返回FALSE。【函数语法】

其中,可选参数link_identifier是成功连接MySQL服务器的连接标识符,如果没有设置该参数的值,则使用上一个打开的连接。该函数的返回值为字符型。【示例程序】下面使用本例函数获得执行修改数据SQL语句的详细信息。代码如下:

以上代码的运行结果如图1.8所示。图1.8 运行结果

上述代码中,成功连接本地的MySQL服务器,书写SQL语句"update language set name='ThinkPHP' where id=4";来修改数据表language中id是4的值,使用代码语句mysql_info($link);获得执行这条SQL语句的详细信息。执行的结果是Rows matched: 1 Changed: 1 Warnings:0。1.2.5 mysql_insert_id函数:获得上一步INSERT操作产生的ID【功能说明】

该函数将获得上一步执行INSERT操作时产生的AUTO_INCREMENT自增ID号。如果成功执行,则该函数返回INSERT操作中产生的ID,如果执行的INSERT操作中没有产生ID号,则该函数返回0。【函数语法】

其中,可选参数link_identifier是成功连接MySQL服务器的连接标识符,如果没有设置该参数的值,则使用上一个打开的连接。该函数的返回值为数值型。【示例程序】下面使用本例函数获得上一步执行INSERT操作时产生的ID号。代码如下:

以上代码的运行结果如图1.9所示。图1.9 运行结果

上述代码中,成功连接了本地MySQL服务器,书写向数据表language中插入一条数据的SQL语句,并使用函数mysql_query()执行,然后使用本例函数mysql_insert_id()来获得上面执行INSERT操作所产生的自增ID号。该ID号是7。1.2.6 mysql_affected_rows函数:获得前一次MySQL操作所影响的记录行数【功能说明】

该函数将获得前一次执行SQL语句所影响到的记录行数。可能执行的操作是INSERT、DELETE、SELECT和UPDATE等。函数执行成功返回影响到的记录行数的数目,如果上一次查询是失败的,函数将返回-1。注:如果在执行SQL语句DELETE操作时,没有指定它的执行

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载