简单介绍下 PHP5 中引入的 MYSQLI

在新下载的PHP5中你会发现多了一个mysqli.dll,它是干什么用的呢?我简单介绍下。。。

mysqli.dll是PHP对mysql新特性的一个扩展支持。在PHP5中可以在php.ini中加载,如下图:

mysql后面的i,指improved, interface, ingenious, incompatible or incomplete(改扩展仍在开发中,因为MYSQL4。1和MYSQL5都没有正式推出尚在开发中,新的特性没有完全实现)

mysqli想实现的目标具体有:

-更简单的维护

-更好的兼容性

-向后兼容

mysql(指PHP中的模块)发展到现在显得比较凌乱,有必要重新做下整理。同时,有必要跟上MYSQL(DBMS)的发展步伐,加入新的特性的支持,以及适应MYSQL(DBMS)以后的版本。所以诞生了mysqli.dll

mysqli.dll的特性:

-可以和mysql.dll一样的方式使用

-支持OO接口,简简单单调用

-支持MYSQL4。1引入的新特性

-通过mysqli_init() 等相关函数,可以设置高级连接选项

mysqli的使用例子:

1.和以前mysql.dll一样的方法:

<?php /* Connect to a MySQL server */ $link = mysqli_connect( 'localhost', /* The host to connect to */ 'user', /* The user to connect as */ 'password', /* The password to use */ 'world'); /* The default table to query */ if (!$link) { printf("Can't connect to MySQL Server. Errorcode: %sn", mysqli_connect_error()); exit; } /* Send a query to the server */ if ($result = mysqli_query($link, 'SELECT Name, Population FROM City ORDER BY Population DESC LIMIT 5')) { print("Very large cities are:n"); /* Fetch the results of the query */ while( $row = mysqli_fetch_assoc($result) ){ printf("%s (%s)n", $row['Name'], $row['Population']); } /* Destroy the result set and free the memory used for it */ mysqli_free_result($result); } /* Close the connection */ mysqli_close($link); ?>

输出结果:

Very large cities are:

Mumbai (Bombay) (10500000)

Seoul (9981619)

S&atilde;o Paulo (9968485)

Shanghai (9696300)

Jakarta (9604900)

2.使用内置OO接口方式调用:

<?php /* Connect to a MySQL server */ $mysqli = new mysqli('localhost', 'user', 'password', 'world'); if (mysqli_connect_errno()) { printf("Can't connect to MySQL Server. Errorcode: %sn", mysqli_connect_error()); exit; } /* Send a query to the server */ if ($result = $mysqli->query('SELECT Name, Population FROM City ORDER BY Population DESC LIMIT 5')) { print("Very large cities are:n"); /* Fetch the results of the query */ while( $row = $result->fetch_assoc() ){ printf("%s (%s)n", $row['Name'], $row['Population']); } /* Destroy the result set and free the memory used for it */ $result->close(); } /* Close the connection */ $mysqli->close(); ?>

支持的新特性还有:Bound Parameters,Bound Results等。。。

有兴趣的可以直接去参看原英文:

http://www.zend.com/php5/articles/php5-mysqli.php#fn3

注:感觉这个不是对所有人都有用。不过。。。相信可以帮助大家多了解些“变化”,能更好的把握“趋势” 8-)

时间: 2024-10-25 19:24:43

简单介绍下 PHP5 中引入的 MYSQLI的相关文章

简单介绍下 PHP5 中引入的 MYSQLI的用途_php基础

在新下载的PHP5中你会发现多了一个mysqli.dll,它是干什么用的呢?我简单介绍下... mysqli.dll是PHP对mysql新特性的一个扩展支持.在PHP5中可以在php.ini中加载. mysql后面的i,指improved, interface, ingenious, incompatible or incomplete(改扩展仍在开发中,因为MYSQL4.1和MYSQL5都没有正式推出尚在开发中,新的特性没有完全实现) mysqli想实现的目标具体有: -更简单的维护 -更好的

问个可啥的r语言问题,lm(a~b)的~是啥意思,以及可以简单介绍下lm么?

问题描述 问个可啥的r语言问题,lm(a~b)的~是啥意思,以及可以简单介绍下lm么? 同题-- 实在太傻我自己都不好意思问,奈何真的是初学者-- lm(a~b)的~是什么意思?以及可以简单给我说下lm是啥么? 解决方案 线性回归模型,a是应变量,b是自变量 解决方案二: R 中的lm函数能够做线性拟合,恰如函数的名字:lm= linear model. lm(a~b)就是对a=k*b+c进行线性拟合

工厂模式-谁能给我简单介绍下设计模式。

问题描述 谁能给我简单介绍下设计模式. 单例有什么用? 什么情况下用到单例模式? 以及什么是工厂模式,工厂模式有什么用,什么情况会用到工厂模式?概念上很模糊,希望大神能给讲解下. 解决方案 1.FACTORY--工程模式? 追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说"来四个鸡翅"就行了.麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开.消费者任何时候需要某种产品,只需向工厂

c#-简单介绍一下C#中的delegate的作用?

问题描述 简单介绍一下C#中的delegate的作用? 就是对C#中delegate的用法不是很清楚,是不是类似于C++中的函数指针 解决方案 给你说一个实例,比如查询一个数据量大约百万的数据表,在查询的过程中界面是会呈现"假死",也就是卡死的状态,直到返回查询结果才恢复. 这时,通常会使用多线程 Thread 来新建一个线程去执行这条语句,这样主界面所在的主线程不会受影响,也就不会出现界面卡死的情况. 说了这么多还没说到deleate,也就是委托.如果子线程在执行的过程中,想要调用主

简单介绍下MYSQL的索引类型_Mysql

一.介绍一下索引的类型 Mysql常见索引有:主键索引.唯一索引.普通索引.全文索引.组合索引 PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) UNIQUE(唯一索引) ALTER TABLE `table_name` ADD UNIQUE (`column`) INDEX(普通索引)      ALTER TABLE `table_name` ADD INDEX index_name ( `colu

简单介绍Java编程中的线程池_java

从 Java 5 开始,Java 提供了自己的线程池.线程池就是一个线程的容器,每次只执行额定数量的线程. java.util.concurrent.ThreadPoolExecutor 就是这样的线程池.它很灵活,但使用起来也比较复杂,本文就对其做一个介绍. 首先是构造函数.以最简单的构造函数为例: public ThreadPoolExecutor( int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit uni

简单介绍Android开发中的Activity控件的基本概念_Android

Activity是最基本的模块,一般称之为"活动",在应用程序中,一个Activity通常就是一个单独的屏幕.简单理解,Activity代表一个用户所能看到的屏幕,主要用于处理应用程序的整体性工作,例如监听系统事件,为用户显示指定的View,启动其他Activity等.所有应用的Activity都继承于android.app.Activity类,该类是Android提供的基层类,其他的Activity继承该父类后,通过父类的方法来实现各种功能. Activity 生命周期图如下: 在a

简单介绍iOS开发中关于category的应用_IOS

创建category文件: 这里,一定要选好base的class, 如下: 无论一个类设计的如何完美,都不可避免的会遇到没有预测到的需求,那怎么扩展现有的类呢?当然,继承是个不错的选择.但是Objective-C提供了一种 特别的方式来扩展类,叫Catagory,可以动态的为已经存在的类添加新的行为.这样可以保证类的原原来的基础上,较小的改动就可以增加需要的功能.使 用Category对类进行扩展时,不需要访问其源代码,也不需要创建子类,这样我们可以扩展系统提供的类.Category使用简单的方

简单介绍SQL Server中的自旋锁_MsSql

为什么我们需要自旋锁? 用闩锁同步多个线程间数据结构访问,在每个共享数据结构前都放置一个闩锁没有意义的.闩锁与此紧密关联:当你不能获得闩锁(因为其他人已经有一个不兼容的闩锁拿到),查询就会强制等待,并进入挂起(SUSPENDED)状态.查询在挂起状态等待直到可以拿到闩锁,然后就会进入可执行(RUNNABLE)状态.对于查询执行只要没有可用的CPU,查询就一直在可执行(RUNNABLE)状态.一旦CPU有空闲,查询会进入运行(RUNNING)状态,最后成功获取到闩锁,用它来保护访问的共享数据结构.