时间:2021-07-01 10:21:17 帮助过:3人阅读
相对于mysql扩展,mysqli扩展支持面向对象和面向过程两种方式,支持预处理,支持事务处理,而且速度比mysql速度更快。本篇将主要介绍mysqli的面向对象的基本简单操作。
mysqli安装配置
mysqli的安装配置和其他配置一样,首先要确认你的ext文件夹下存在php_mysqli.dll文件(一般而言是存在的),并且在php.ini文件中去掉“extension=php_mysqli.dll”这一行前的";",并且确定配置文件中extensi/span>
如何验证mysqli扩展已经开启了呢?
其实最直接的是使用mysqli扩展的函数看看能不能用,例如通过能否连接数据库判断扩展已经安装完成。连接成功,不必说,自然是装好了,连接不成功,也不要轻易认为没有装好,我们还有后招,利用phpinfo()函数,我们可以明确知道mysqli是否可用。
当然可以通过extension_loaded('mysqli') 来判断是否装载mysqli扩展,甚至可以通过get_loaded_extensions()获得到底装载了哪些扩展。
面向对象mysqli的使用
对于使用过mysql扩展的开发者,mysqli无论是面向对象还是面向过程的 方式都是非常容易理解的,有种似曾相识的感觉。具体的属性方法请参照php官方手册,http://php.com/manual/zh/mysqli.summary.php,下面我我通过一段代码示例mysqli的使用过程。
本例中操作做的表为test表,有id,title两个字段。
- <span><!--?<span-->php
- </span><span>//</span><span>配置文件完成相关配置</span><span>define</span>("HOST", "localhost"<span>);
- </span><span>define</span>("USER", 'root'<span>);
- </span><span>define</span>("PWD", ''<span>);
- </span><span>define</span>("DB", 'yii'<span>);
- </span><span>//</span><span>建立连接,生成mysqli实例对象。</span><span>$mysqli</span>=<span>new</span> Mysqli(HOST,USER,PWD,<span>DB);
- </span><span>if</span> (<span>$mysqli</span>-><span>connect_errno) {
- </span>"Connect Error:".<span>$mysqli</span>-><span>connect_error;
- }
- </span><span>//</span><span>设置默认的字符集</span><span>$mysqli</span>->set_charset('utf8'<span>);
- </span><span>$sql</span>="select * from test"<span>;
- </span><span>//</span><span>生成mysql_result对象</span><span>$result</span>=<span>$mysqli</span>->query(<span>$sql</span><span>);
- </span><span>//</span><span>返回二维关联数组,参数同理可以设定为MYSQLI_NUM返回索引数组,或者MYSQLI_BOTH二者兼有。</span><span>$rows</span>=<span>$result</span>-><span>fetch_all(MYSQLI_ASSOC);
- </span><span>//</span><span>将结果指针调整到任意行</span><span>$result</span>->data_seek(2<span>);
- </span><span>$row</span>=<span>$result</span>-><span>fetch_row();
- </span><span>//</span><span>$row=$result->fetch_array();
- //$row=$result->fetch_assoc();
- //$row=$result->fetch_object();
- //释放结果集</span><span>$result</span>-><span>free();
- </span><span>//</span><span>$result->free_result();
- //$result->close();
- //关闭连接</span><span>$mysqli</span>->close();
以上代码仅仅是简单地展现了如何 利用mysqli进行查询,未对查询结果集进行遍历,如何取出数组中的数据应该不是难事。
需要注意的是$mysqli->query()执行的sql语句,成功执行SELECT, SHOW, DESCRIBE或 EXPLAIN查询会返回一个mysqli_result 对象,其他查询则返回 TRUE,执行失败则都返回false。
在进行INSERT,UPDATE,DELETE操作时可以调用$mysqli->affected_rows获得受影响记录条数
$mysqli->affected_rows 返回值 返回-1表明sql语句出现问题,0表示没有受影响的记录,其他数值则是受影响条数。
执行多条SQL语句,预处理,以及事务处理也是mysqli的重要内容,我会在后来的随笔中写到。
p个s:第一次写技术博客好紧张有木有!很多措辞不当的地方还是希望大家多多提意见~
以上就介绍了Mysqli基础知识,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。