(转载)函数:mysqli_query和mysql_query有何区别

(转载)函数:mysqli_query和mysql_query有何区别?
(转载)http://wzan315.blog.163.com/blog/static/37192636201241732045299/
Mysqli.dll是一个允许以对象的方式或者过程操作数据库的,它的使用方式也很容易。这里就几个常见的操作和mysql.dll做一个对比。   1:mysql.dll(可以理解为函数式的方式):

c o n n = m y s q l c o n n e c t ( ′ l o c a l h o s t ′ , ′ u s e r ′ , ′ p a s s w o r d ′ ) ;   / / 连 接 m y s q l 数 据 库     m y s q l s e l e c t d b ( ′ d a t a b a s e ′ ) ; / / 选 择 数 据 库         conn = mysql_connect('localhost', 'user', 'password'); //连接mysql数据库   mysql_select_db('data_base'); //选择数据库       conn=mysqlconnect(localhost,user,password); //mysql  mysqlselectdb(database);//    result = mysql_query(‘select * from data_base’);//这里有第二个可选参数,指定打开的连接

$row = mysql_fetch_row( $result ) ) //为了简单,这里只取一行数据
  echo r o w [ 0 ] ; / / 输 出 第 一 个 字 段 的 值     m y s q l i 也 有 过 程 式 的 方 式 , 只 不 过 开 始 贯 以 m y s q l i 的 前 缀 , 其 他 都 差 不 多 。 如 果 m y s q l i 以 过 程 式 的 方 式 操 作 的 话 , 有 些 函 数 必 须 指 定 资 源 , 比 如 说 m y s q l i q u e r y ( 资 源 标 识 , S Q L 语 句 ) , 并 且 资 源 标 识 的 参 数 是 放 在 前 面 的 , 而 m y s q l q u e r y ( S Q L 语 句 , ′ 可 选 ′ ) 的 资 源 标 识 是 放 在 后 面 的 , 并 且 可 以 不 指 定 , 它 默 认 是 上 一 个 打 开 的 连 接 或 资 源 。     2 m y s q l i . d l l ( 对 象 方 式 ) :     row[0]; //输出第一个字段的值   mysqli也有过程式的方式,只不过开始贯以mysqli的前缀,其他都差不多。如果mysqli以过程式的方式操作的话,有些函数必须指定资源,比如说 mysqli_query(资源标识,SQL语句),并且资源标识的参数是放在前面的,而mysql_query(SQL语句,'可选')的资源标识是放在后面的,并且可以不指定,它默认是上一个打开的连接或资源。   2mysqli.dll(对象方式):    row[0];//  mysqlimysqlimysqlimysqliquery(,SQL),mysqlquery(SQL,)  mysqli.dll()  conn = new mysqli(‘localhost’, ‘user’, ‘password’,‘data_base’);
  //这里的连接是new出来的,最后一个参数是直接指定数据库,不用mysql_select_db()了
  //也可以构造时候不指定,然后 c o n n − > s e l e c t d b ( ′ d a t a b a s e ′ )     conn -> select_db('data_base')    conn>selectdb(database)  result = c o n n − > q u e r y ( ′ s e l e c t ∗ f r o m d a t a b a s e ′ ) ;     conn -> query( 'select * from data_base' );    conn>query(selectfromdatabase);  row = r e s u l t − > f e t c h r o w ( ) ; / / 取 一 行 数 据     e c h o r o w [ 0 ] ; / / 输 出 第 一 个 字 段 的 值     二 : m y s q l f e t c h r o w ( ) , m y s q l f e t c h a r r a y ( )     这 两 个 函 数 , 返 回 的 都 是 一 个 数 组 , 区 别 就 是 第 一 个 函 数 返 回 的 数 组 是 只 包 含 值 , 我 们 只 能 result -> fetch_row(); //取一行数据   echo row[0]; //输出第一个字段的值   二:mysql_fetch_row(),mysql_fetch_array()   这两个函数,返回的都是一个数组,区别就是第一个函数返回的数组是只包含值,我们只能 result>fetchrow();//  echorow[0];//  mysqlfetchrow(),mysqlfetcharray()  row[0],
r o w [ 1 ] , 这 样 以 数 组 下 标 来 读 取 数 据 , 而 m y s q l f e t c h a r r a y ( ) 返 回 的 数 组 既 包 含 第 一 种 , 也 包 含 键 值 对 的 形 式 , 我 们 可 以 这 样 读 取 数 据 , ( 假 如 数 据 库 的 字 段 是 u s e r n a m e , p a s s w d ) :     row[1],这样以数组下标来读取数据,而mysql_fetch_array()返回的数组既包含第一种,也包含键值 对的形式,我们可以这样读取数据,(假如数据库的字段是 username,passwd):    row[1],mysqlfetcharray()username,passwd:  row[‘username’], r o w [ ′ p a s s w d ′ ]     而 且 , 如 果 用 ( row['passwd']   而且,如果用( row[passwd]  (row as $kay => $value)来操作的话,还以直接取得数据库的字段名称。
  更主要的是mysqli是php5提供的新函数库,(i)表示改进,其执行速度更快.

MYSQLI到底是什么呢?MYSQLI有何优点,MYSQLI如何开启?

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

mysqli.dll是php对mysql新特性的一个扩展支持。mysql是非持继连接函数而mysqli是永远连接函数。也就是说mysql每次链接都会打开一个连接的进程而mysqli多次运行mysqli将使用同一连接进程,从而减少了服务器的开销,在高MYSQL查询环境下mysqli性能比mysql好点

在php5中可以在php.ini中加载

修改C:\WINDOWS\PHP.INI,把;extension=php_mysqli.dll前面的;去掉就能使PHP加载MYSQLI功能 起源网资讯频道

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() 等相关函数,可以设置高级连接选项

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值