常用的 myslqi 函数 || 方法 剖析

来源:互联网 发布:佳能格式转换软件 编辑:程序博客网 时间:2024/06/07 15:37

1   mysqli_connect — 别名 mysqli :: __construct() 

用于打开一个MySQL服务器连接,如果成功返回一个MySQLi连接标识,失败则返回false

面向过程函数:

mysqli_connect ($host,$username,$passwd,$dbname,$port,$socket );  //参数可选

l         host:连接的服务器地址。

l         username:连接数据库的用户名,默认值是服务器进程所有者的用户名。

l         passwd:连接数据库的密码,默认值为空。

l         dbname:连接的数据库名称。

l         port:TCP端口号。

l         socket:UNIX域socket。

面向对象方法:

$mysqli = new mysqli("localhost","root","","mydatabase");
$mysqli = new mysqli();$mysqli->connect("localhost","root","","mydatabase");
$mysqli = new mysqli();$mysqli->connect('127.0.0.1','root','root’);$mysqli->select_db('test');

Note :mysqli 提供了面向对象编程方式,需要new一下myslqi才可以可实例化mysqli并调用mysqli的方法;myslqi的方法即是mysqli面向过程的函数。

2   mysqli_select_db() ||  mysqli :: select_db

用于选择数据库查询的默认数据库

面向过程函数:

mysqli_select_db($mysqli,"mydatabase");  //参数必须

面向对象方法:

$mysqli->select_db("mydatabase");

Note :  本函数应该只被用在改变本次链接的数据库,你也能在mysqli_connect()第四个参数确认默认数据库。

3   mysqli_query()  ||  mysqli :: query

对数据库执行一次查询

面向过程函数:

mysqli_query ( $link , $sql ,[resultmode]);  //resultmode 是可选参数,取值可以是 MYSQLI_USE_RESULT 和 MYSQLI_STORE_RESULE(默认值);

栗子 :

$myslqi_result = mysqli_query($mysqli,“set names utf8”);  //设置字符集var_dump($myslqi_result);   //bool

面向对象方法:

$mysqli->query($sql);  

栗子:

$sql = "insert into persons (`firstname`,`lastname`) values('{TONG}','{KING}');";  //添加数据$myslqi_result = $mysqli->query($sql);var_dump($myslqi_result); //bool

Note : 失败时返回 FALSE,通过mysqli_query() 成功执行SELECT, SHOW, DESCRIBE或 EXPLAIN查询会返回一个mysqli_result 对象,其他查询则返回TRUE。

4 mysqli_fetch_array()  ||  mysqli_result :: fetch_array

从结果集中取得一行作为关联数组,或数字数组,或二者兼有;

面向过程函数:

mysqli_fetch_array( $myslqi_result,[resulttype] ) ;  //第一个参数是查询的结果集(必须),第二个是返回数组的类型(可选);

resulttype 参数有三个,分别是

  • MYSQLI_NUM,返回一个索引数组,数组下标由数字组成;
  • MYSQLI_ASSOC,返回一个关联数组,数组下标由表的字段名组成;
  • MYSQLI_BOTH,返回数组的索引既包括数字和名称。(默认)

栗子:

$sql = "select * from persons";$mysqli_result = mysqli_query($mysqli,$sql);$row = mysqli_fetch_array($mysqli_result,MYSQLI_ASSOC);  //返回一个关联数据;var_dump($row);

面向对象方法:

mysqli_result->fetch_array ([resulttype])   //参数可选;

栗子:

$sql = "select * from persons";$myslqi_result = $mysqli->query($sql);$row = $myslqi_result->fetch_array(MYSQLI_NUM);   //返回一个索引数组var_Dump($row);

Note 此函数返回的字段名大小写敏感

其实还有等价的方法 fetch_row(),fetch_assoc() ,他们之间的关系如下:

$result->fetch_row() =  mysql_fetch_row() = $result->fetch_array(MYSQLI_NUM) = mysql_fetch_array(MYSQLI_NUM)  返回索引数组

$result->fetch_assoc() =  mysql_fetch_assoc() = $result->fetch_array(MYSQLI_ASSOC) = mysql_fetch_array(MYSQLI_ASSOC)  返回索引列名

5  mysqli_fetch_object  ||  mysqli_result :: fetch_object

mysqli_fetch_object 和 mysqli_fetch_array 类似,只是它返回的是对象不是数组;

面向过程函数:

mysqli_fetch_object($mysqli_result);  

面向对象方法:

$myslqi_result->fetch_object();

Note 此函数返回的字段名大小写敏感

6  mysqli_num_rows  ||  mysqli_result :: num_rows

mysqli_num_rows() 函数返回结果集中行的数量。

面向过程函数:

mysqli_num_rows ( $result ) //返回结果数目;

面向对象方法:

int $mysqli_result->num_rows;  

Note : 该函数只对SELECT 语句有效,对于INSERT、UPDATE、DELETE语句产生影响的数要使用 mysqli_affected_rows 函数

7  mysqli_free_result  ||  mysqli_result::free

用于释放内存,数据库操作完成之后,需要关闭结果集,以释放系统资源;

面向过程函数:

mysqli_free_result ( mysqli_result );  //没有返回值。

面向对象方法:

$mysqli_result->free_result();$mysqli_result->free();

Note : 该函数仅考虑在返回很大的结果集时才使用;

8 mysqli_close  ||   mysqli::close

Closes a previously opened database connection;

Procedural style:

mysqli_close ( $mysqli );

Object oriented style:

$mysqli->close( $mysqli );

Note : mysqli_close() will not close persistent connections.