首页 > php学习 > php常用函数 > PHP中使用mysqli与MySQL建立交互
2016
12-16

PHP中使用mysqli与MySQL建立交互

一、建立、关闭与MySQL服务器的连接

1、连接指定的mysql服务器

$link=@mysqli_connect($host, $user, $password,$database,$port);

2、连接错误时的提示

mysqli_connect_errno ();(返回int类型)

mysqli_connect_error ();(返回string类型)

3、设置默认字符编码

mysqli_set_charset ($link,'字符编码名');(返回bool类型)

4、选择特定的数据库

mysqli_select_db ($link,'数据库名');(返回bool类型)

5、关闭与mysql服务器的连接

mysqli_close ($link);(返回bool类型);

二、执行SQL语句以及返回结果集处理

1、对数据库执行一条SQL语句

1>mysqli_query ($link ,‘数据库语句’ [,MYSQLI_STORE_RESULT||MYSQLI_USE_RESULT]);

MYSQLI_STORE_RESULT:执行SQL时提取结果集返回给client,并分配内存,存储到用户程序空间中,之后操作相当于是从本地取数据;

MYSQLI_USE_RESULT:mysqli_fetch_array()每次都要向server请求结果行。执行SQL的时候并没有从server将结果集取回。

①对于insert,update,delete等不会返回数据的SQL语句,在执行没有错误时将返回true。

②对于返回数据的SQL语句执行成功的时候会返回结果集对象可以使用操作结果集对象的函数来从中获取数据

2>mysqli_real_query ($link ,‘数据库语句’);

使用本函数对数据库执行一条SQL语句,返回结果为布尔值,不返回结果集,仅返回执行是否成功。

如果想获取结果集可以使用mysqli_store_result($link)获取结果集对象.

3>如果在执行SQL语句的时候发生错误,以上两个函数都将返回false,并且可以使用以下函数处理错误原因

mysqli_errno ($link);(返回int类型)

mysqli_error ($link);(返回string类型)

4>获取前一个Mysql操作的受影响行数

mysqli_affected_rows ($link);(返回int类型)

5>返回最后一次操作自动生成并使用的id

mysqli_insert_id ($link);

6>转义用于SQL语句中的特殊字符防止SQL语句出错

mysqli_real_escape_string ($link,要转义的字符串);(返回string类型)

转义之前最好用定界符给原字符串定义:

$str=<<<string< p="">

原字符串

STRING;

7>一次性执行多条SQL语句,多个SQL语句用分号隔开

$query="insert into 表1(字段名) values(值);insert into 表2(字段名) values(值)...";

mysqli_multi_query($link,$query);(返回bool类型,只要第一条语句执行成功,不管后面是否成功都返回true)

2、操作结果集对象的函数

1>从结果集对象中解析数据的常见函数

$query='数据库语句';

$result=mysqli_query ($link,$query);

①以索引数组的方式获取记录的数据

mysqli_fetch_row ($result);

②以关联数组的方式获取记录的数据

mysqli_fetch_assoc ($result);

③以索引数组或关联数组的方式获取记录的数据

mysqli_fetch_array ($result [MYSQLI_BOTH||MYSQLI_ASSOC||MYSQLI_NUM]);

重复使用以获取下一条记录的数据

④以索引数组或关联数组的方式获取全部记录的数据

mysqli_fetch_all ($result [MYSQLI_NUM||MYSQLI_BOTH||MYSQLI_ASSOC]);

⑤返回结果集中的下一个字段信息

mysqli_fetch_field ($result); 重复使用以获取下一条记录的数据

获取object中某个数据用:$object->key获取

⑥返回一个代表结果集字段的对象数组

mysqli_fetch_fields ($result);

⑦获取结果中行的数量

mysqli_num_rows ($result);

注意:如果使用MYSQLI_USE_RESULT模式则必须在获取完结果集才可使用该函数。

2>释放与一个结果集相关的内存

返回的结果集在数据量很大的时候需要很多的内存支持,所以在操作完结果集的时候有必要立刻释放与一个结果集相关的内存, 释放之后,结果集就不可用了

mysqli_free_result ($result);

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。