关于初学PHP时的知识积累总结(5)

20、对象的序列化
为了方便变量的传输和存储,通常会在传输和存储变量前将其转化成为字符串的字节流形式,在需要使用这些变量时,再将其还原为
原来的变量,这个过程成为序列化和反序列化。
为了方便传输和存储类对象,也可以对齐进行序列化和反序列化处理。PHP中使用函数serialize()来序列化一个对象,其参数为对象名,
返回值为序列化后得到的字符串。反序列化使用unserialize()函数,其参数为字符串,返回原来的对象。
对象在序列化的时候,会自动调用一个名为__sleep()方法,完成一些睡前的事情,该方法不接收任何参数,但会返回一个数组,数组中
指定需要序列化的属性,未被包含的属性将在序列化时被忽略。如果没有指定__sleep()方法,PHP将对所有的属性进行序列化。
对象在反序列化时,会自动调用一个名为__wakeup()的方法,做一些对象醒来就要做的动作。

八、PHP访问MySQL数据库
1、数据库操作的基本步骤
链接数据库服务器mysql_connect(MySQL服务器主机名,用户名,密码);
选择一个数据库mysql_select_db(数据库名,资源标识);
对数据库进行操作mysql_query(数据库语句,资源标识);
对数据记录进行处理 mysql_fetch_row(资源标识);

2、连接和关闭数据库
$connect = mysql_connect("localhost","root","123456");
在结束对数据库的操作之后,mysql_connect()会自动断开连接,也可以显式地使用mysql_close()断开连接。
mysql_pconnect()建立的是一种持久连接,一旦建立连接,连接将被放到连接池中,即使数据库操作结束也
不会自动关闭连接,而是留待以后使用。即使使用mysql_close()函数也无法关闭由函数mysql_pconnect()建立
的连接。
完成数据库操作后,应当关闭连接。但关闭不是必需的,因为PHP具有垃圾回收功能,会自动对不用的连接进行
处理。当然可以显式地关闭连接,关闭连接需要资源标识号,如果没有指定,则默认关闭最近打开的连接。
mysql_close(资源标识号);

3、选择数据库
选择数据库mysql_select_db(数据库名,资源标识号);

4、查询数据库
执行查询操作的函数有mysql_query()和mysql_db_query()。其中函数mysql_query()直接执行一个SQL语句,
而函数mysql_db_query()可以在指定数据库上执行SQL语句。
mysql_query(SQL语句,资源标识号):
 如果SQL语句是select、show、expllain、describe等查询语句,则执行成功时将返回一个资源标识号,失败时返回false
 如果SQL语句是其他语句(insert、update、delete等),成功时返回true,失败时返回false。
mysql_db_query(数据库名,SQL语句,资源标识号)功能同上,此句相当于mysql|_slect_db()和mysql_query()的组合。

5、获取和显示数据
mysql_fetch_row(资源标识号)以数组的形式返回查询结果集中的当前记录行,并在调用后将结果集中的当前行指针下移一行
mysql_fetch_array(资源标识号)以数组的形式返回查询结果集中的当前记录行,并在调用后将结果集中的当前行下移一行
NOTE:mysql_fetch_row()返回的结果数组只能使用数字下标进行访问,mysql_fetch_array()返回结果数组可以使用数组下标,
也可以使用字段名进行访问,不过mysql_fetch_row()可以得到最快的执行速度
mysql_fetch_assoc(资源标识号)以关联数组的形式返回查询结果集中的当前记录行,并在调用后将结果集中的当前行指针下移一行
mysql_fetch_object(资源标识号)以对象的形式返回查询结果集中的当前记录行,并在嗲用后将结果集中的当前行指针下移一行
mysql_result(资源标识号,行号,字段)字段可以使用数字索引,也可以使用字段名。数字索引下标从0开始
该函数返回指定记录行的指定字段的值
mysql_num_rows(资源标识号)返回符合查询条件的记录行数
mysql_field_seek(资源标识号,定位的行号)定位到要查询的行
mysql_fetch_length(资源标识号)以数字索引数组的形式返回,且每个数组元素值对应一个字段的字节数

6、数据的增删改及相关操作
使用mysql_query()完成数据的增删改操作
int mysql_affected_rows(资源标识号)返回受insert、update和delete影响的记录数
mysql_num_rows()仅对select语句有效

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/2b521f2e38fddc5e3b8839289845d812.html