Mysqli基础知识

       相信原来在开始学习php的时候,不少人使用的数据库首选MySQL,链接数据库的扩展首选mysql扩展,但随着php版本的提升,mysql扩展正逐渐被mysqli和PDO所取代。正如使用mysql函数时给出的deprecated: The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead。学习mysqli扩展势在必行了。php

   相对于mysql扩展,mysqli扩展支持面向对象和面向过程两种方式,支持预处理,支持事务处理,并且速度比mysql速度更快。本篇将主要介绍mysqli的面向对象的基本简单操做。html

   mysqli安装配置

  mysqli的安装配置和其余配置同样,首先要确认你的ext文件夹下存在php_mysqli.dll文件(通常而言是存在的),而且在php.ini文件中去掉“extension=php_mysqli.dll”这一行前的";",而且肯定配置文件中extension_dir='ext目录所在的位置。从新启动服务器后,即可以使用mysqli扩展啦~mysql

   如何验证mysqli扩展已经开启了呢?

   其实最直接的是使用mysqli扩展的函数看看能不能用,例如经过可否链接数据库判断扩展已经安装完成。链接成功,没必要说,天然是装好了,链接不成功,也不要轻易认为没有装好,咱们还有后招,利用phpinfo()函数,咱们能够明确知道mysqli是否可用。sql

   固然能够经过extension_loaded('mysqli') 来判断是否装载mysqli扩展,甚至能够经过get_loaded_extensions()得到到底装载了哪些扩展。数据库

  面向对象mysqli的使用

  对于使用过mysql扩展的开发者,mysqli不管是面向对象仍是面向过程的 方式都是很是容易理解的,有种似曾相识的感受。具体的属性方法请参照php官方手册,http://php.net/manual/zh/mysqli.summary.php,下面我我经过一段代码示例mysqli的使用过程。数组

本例中操做作的表为test表,有id,title两个字段。服务器

 

<?php //配置文件完成相关配置
define("HOST", "localhost"); define("USER", 'root'); define("PWD", ''); define("DB", 'yii'); //创建链接,生成mysqli实例对象。
$mysqli=new Mysqli(HOST,USER,PWD,DB); if ($mysqli->connect_errno) { "Connect Error:".$mysqli->connect_error; } //设置默认的字符集
$mysqli->set_charset('utf8'); $sql="select * from test"; //生成mysql_result对象
$result=$mysqli->query($sql); //返回二维关联数组,参数同理能够设定为MYSQLI_NUM返回索引数组,或者MYSQLI_BOTH两者兼有。
$rows=$result->fetch_all(MYSQLI_ASSOC); //将结果指针调整到任意行
$result->data_seek(2); $row=$result->fetch_row(); //$row=$result->fetch_array(); //$row=$result->fetch_assoc(); //$row=$result->fetch_object(); //释放结果集
$result->free(); //$result->free_result(); //$result->close(); //关闭链接
$mysqli->close();

以上代码仅仅是简单地展示了如何 利用mysqli进行查询,未对查询结果集进行遍历,如何取出数组中的数据应该不是难事。yii

 

须要注意的是$mysqli->query()执行的sql语句,成功执行SELECT, SHOW, DESCRIBEEXPLAIN查询会返回一个mysqli_result 对象,其余查询则返回 TRUE,执行失败则都返回false。函数

 

在进行INSERT,UPDATE,DELETE操做时能够调用$mysqli->affected_rows得到受影响记录条数学习

$mysqli->affected_rows 返回值 返回-1代表sql语句出现问题,0表示没有受影响的记录,其余数值则是受影响条数。

   

执行多条SQL语句,预处理,以及事务处理也是mysqli的重要内容,我会在后来的随笔中写到。

 

p个s:第一次写技术博客好紧张有木有!不少措辞不当的地方仍是但愿你们多多提意见~

相关文章
相关标签/搜索