• mysql 与 mysqli的区别


    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封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法。具体查看 http://cn.php.net/mysqli

    应用比较多的地方是 mysqli的事务。

    1.mysql是非持继连接函数而mysqli是永远连接函数
    也就是说mysql每次链接都会打开一个连接的进程

    ,而mysqli多次运行mysqli将使用同一连接进程,从而减少了服务器的开销
      有 些朋友在编程的时候,使用 new mysqli('localhost', usenamer', 'password', 'databasename');总是报 错,Fatal error: Class 'mysqli' not found in d:...
      mysqli类不是php自带的吗?
      不是默认开启的,win下要改php.ini,去掉php_mysqli.dll前的;,linux下要把mysqli编译进去
     
    2.
    mysqli连接是永久连接,而mysql是非永久连接。
    mysql连接:每当第二次使用的时候,都会重新打开一个新的进程。
    mysqli连接:一直都只使用同一个进程。
    好处:这样就可以很大程度的减轻服务器端压力。

    当然,如果mysql也需要永久连接的话,就可以使用mysql_pconnect()这个函数

    mysqli的面向过程的使用:
    $conn = mysqli_connect('localhost', 'root', '123', 'db_test') or ('error');
    $sql = "select * from db_table";
    $query = mysqli_query($conn,$sql);
    while($row = mysqli_fetch_array($query)){
    echo $row['title'];
    }

    mysqli的面向对象的使用:
    $conn = new mysqli('localhost', 'root', '123', 'db_test');
    $sql = "select * from db_table";
    $query = $conn->query($sql);
    while($row = $query->fetch_array()){
    echo $row['title'];
    }
  • 相关阅读:
    union 和 union all 区别
    sql 日期类型空值等于 1900-01-01
    IDENTITY_INSERT 自增开关使用
    Convert.ToDateTime() 与 DateTime.TryParse()区别
    SOLID 原则摘录
    不同JavaScript 代码段 变量作用域
    sql 常见错误总结
    jquery.form插件 提交表单 type="hidden"取不到值的问题记录
    同义词
    SQL优化传送门
  • 原文地址:https://www.cnblogs.com/xs-yqz/p/4944637.html
Copyright © 2020-2023  润新知