PHP数据库操作中,mysqli相对于mysql有很大的优势,建议大家使用;之前我们有介绍过如何在PHP5中使用mysqli的prepare操作数据库,使用mysqli更是支持多查询特性,请看下面这段php...php $mysqli = new mysqli("localhost","root","","123456"); $mysqli- query("set names 'utf8'"); //多条sql...sql语句查询结果 while ($row=$rs- fetch_row()){ var_dump($row); echo "<br "; } $rs- Close(); //关闭结果集...if ($mysqli- more_results()){ //判断是否还有更多结果集 echo "<hr "; } } }while($mysqli- next_result());...//next_result()方法获取下一结果集,返回bool值 } $mysqli- close(); //关闭数据库连接 ?
现在如果想要使用过程式的代码来操作数据库,只能使用 mysqli 扩展了。当然,mysqli 扩展也是支持面向对象式的写法的。...什么是 MySQLi MySQLi 扩展允许我们访问 MySQL4.1 及以上版本的数据库所提供的功能。...仅支持面向对象方式使用 可以连接多种数据库,切换数据库带来的变更少,甚至可能不用修改代码 支持 存储过程 、 多语句执行 、 预处理语句 最后就是 MySQLi 。...当然,小众并不意味着不好,就像日常开发中,我们很少会在 PHP 环境中使用别的数据库,那么在自己的小项目中完全使用一套 MySQLi 来操作数据库反而更加地方便快捷。...而 MySQLi 虽然只支持 MySQL 数据库,但它却可以同时支持面向对象和面向过程两种写法。是我们针对老项目代码进行升级优化的好帮手。同时,它还是现在入门 PHP 学习相关数据库操作的首选。
建立数据库连接有两种风格 1、面向对象风格: <?...php //1、建立到mysql的连接 //mysqli('主机名','数据库用户名','数据库密码','连接的数据库的名字') $mysqli=new mysqli('localhost',...$mysqli->connect_error); } //2.设置默认的字符集:utf8 $mysqli->set_charset('utf8'); //3.执行SQL语句 $sql='...php //过程化风格 //1、建立数据库连接 $link=mysqli_connect('localhost','root','root','test') ; if(mysqli_connect_errno...); //4、关闭数据库连接、释放资源 mysql_close($link); ?
使用 MySQLi 和 PDO 向 MySQL 插入数据 在创建完数据库和表后,我们可以向表中添加数据。...以下为一些语法规则: PHP 中 SQL 查询语句必须使用引号 在 SQL 查询语句中的字符串值必须加引号 数值的值不需要引号 NULL 值不需要引号 INSERT INTO 语句通常用于向 MySQL...现在,让我们开始向表填充数据。...注意: 如果列设置 AUTO_INCREMENT (如 "id" 列) 或 TIMESTAMP (如 "reg_date" 列),,我们就不需要在 SQL 查询语句中指定值; MySQL 会自动为该列添加值..."" . mysqli_error($conn); } mysqli_close($conn); ?> 实例 (PDO) <?
规定查询字符串。 resultmode 可选。一个常量。...返回值 mysql_query()仅对SELECT | SHOW | EXPLAIN | DESCRIBE语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。...非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。很有可能一条查询执行成功了但并未影响到或并未返回任何行。...();//将结果以对象方式传给$rows if($rows){ }else{ } 其他查询 mysqli_query($coon,"INSERT INTO num VALUES ($max,0, $news...);");//插入一条记录 $max = mysqli_query($coon,"SELECT * from num where seq =".
不过,今天的主角是 MySQLi 中如何执行 SQL 语句以及多条 SQL 语句的执行。 连接与选择数据库 首先是一个小内容的学习分享,依然还是连接数据库,不过这次我们用另外一种方式来进行连接。...在实例化过程中,我们并没有给 mysqli 的构造函数传递任何的参数,而是使用 real_connect() 方法来传递数据库服务器信息并建立连接。...相信不少朋友从代码中就可以看出,我们使用 real_connect() 可以在一个 mysqli 实例下来切换不同的数据库连接。...如果执行的是 SELECT 语句,那么 query() 返回的就是一个 mysqli_result 对象,它代表从一个数据库查询中获取的结果集。关于这个对象的内容我们将在后面的文章中进行详细的说明。...所以,use_result() 方法最大的好处就是占用内存小,适合大量查询的遍历,缺点则是每次都要去数据库查询,速度慢。
> 从PHP5.0开始就不推荐使用mysql_connect()函数,到了php7.0则直接废弃了该函数,替代的函数是:mysqli_connect(); 2、mysqli(mysql improved...test", "root", ""); $query="select * from user";//需要执行的sql语句 $res = $pdo->prepare($query);//准备查询语句...> 4、mysql是非持续连接函数而mysqli是永远连接函数。mysql每次连接都会打开一个连接的进程而mysqli多次运行mysqli将使用同一连接进程,从而减少了服务器的开销。...5、由于PDO能够支持其它非MySQL的数据库,而MySQLi专门针对MySQL设计的,所以MySQLi相对于PDO性能稍微好一些。但是PDO和MySQLi都还是没有PHP原生的MySQL扩展快。...6、PDO支持12种数据库驱动和命名参数绑定是其最大优点。
' where id=2 //删除数据 delete from guest where id=1 //查询 select id,title,content from guest limit 10...select * from guest where id=2 二、mysqli扩展 class mysqli{ } //数据库连接 $mysqli = new mysqli("localhost"..., "my_user", "my_password", "world"); //数据库连接错误号码 $mysqli->connect_errno //数据库连接错误内容 $mysqli->connect_error...//设置编码 $mysqli->set_charset("utf8mb4")) //执行sql语句 $result=$mysqli->query($sql); //设置结果类型 返回一行的数据 //...获取一列 getAll 获取多列 insert 插入数据并返回自增id delete 删除数据 update 更新数据
2.1 数据库连接与查询 示例代码 在 php_learning 目录下新增一个 mysql 子目录,然后在该子目录下新建一个 mysqli.php 文件,编写一段通过 mysqli 扩展 API 建立数据库连接和查询的代码...函数即可建立与 MySQL 数据库的连接,我们传入了5个参数,依次是数据库主机、用户名、密码、数据库名称和端口号,建立连接成功后,就可以持有这个连接实例通过 mysqli_query 函数执行数据库查询了...,我们将 SQL 语句作为第二个参数传入,该函数的返回结果是一个查询结果集实例,拿到这个实例之后,就可以通过 mysqli_fetch_* 系列函数获取结果数据了。...将返回结果映射到指定对象 除了返回数组格式结果外,还可以借助 mysqli_fetch_object 函数将数据库查询结果映射到指定对象实例并返回: class Post { public $id...2.2 避免 SQL 注入攻击 在上述数据库查询操作中,我们直接将原生 SQL 语句传递给 MySQL 数据库执行,如果 SQL 语句中包含了用户传递的参数,则存在 SQL 注入风险,要避免 SQL 注入攻击
本文实例讲述了PHP封装的mysqli数据库操作类。...分享给大家供大家参考,具体如下: 由于PHPMySQL操作在PHP5.4以下被弃用而推荐使用mysqli(MySQL Improvement),这里是在我原有的MySQL数据库操作类的基础上加以改进而编写出的...MySQLI数据库操作类,整体代码与MySQL数据库操作类大致相同,直接实例化db_class即可 <?...db_getconn(){ //连接数据库 $this- db_conn= mysqli_connect($this- db_url,$this- db_username,$this- db_userpassword...{ //分页操作 $this- db_limit="limit $start,$end"; } public function db_select($typearr="",$where=""){ //查询操作
所以在这里,我们就不再多讲理论方面的东西了,直接上代码来看看 MySQLi 中这两大特性与 PDO 在使用上的区别。 事务处理 首先,我们还是要让 MySQLi 对于错误的语句也报出异常来。...而在 MySQLi 中,我们则需要指定 MySQLi_Driver 对象中的报错属性为抛出异常,很明显,MySQLi_Driver 就是 MySQLi 的驱动对象。...// 使用异常处理错误情况 $driver = new mysqli_driver(); $driver->report_mode = MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT...这个参数表明的是绑定数据的类型,s 就是字符串类型。其它的类型我们在学习 MySQLi_STMT 相关的内容时再深入的了解。...对于我们来说,还是多以学习了解为主,在自己封装或者使用某些以 MySQLi 为底层数据库操作的框架时不至于晕头转向。
PHP中的MySQLi扩展学习(六)MySQLI_result对象操作 在之前的文章中,我们就已经接触过 MYSQLI_result 相关的内容。它的作用其实就是一个查询的结果集。...但在 MySQLi 中,会把查询到的结果也放入一个对象中,这就是 MySQLI_result 对象。...MySQLI_result 对象属性 首先,我们要通过一段查询来获得一个 MySQLI_result 对象。...查询结果集获取 MySQLI_result 对象的可见属性中,我们只能看到上面的那些信息。...对于我们的业务开发来说其实用处不大,除了 num_rows 可以用来根据行数判断查询是否有结果之外,更重要的是我们要获取到结果集中的数据信息,这时就需要使用其它的函数来进行数据的获取了。
可以看出,MySQLI_STMT 的错误属性和信息基本和 MySQLi 对象的是一样的。 列绑定 除了请求查询语句参数的绑定之外,MySQLI_STMT 也是支持直接绑定列的。...MySQLI_STMT 中绑定列的方法名为 bind_result() ,虽说名字不一样,但功能其实都是差不多的,查询语句中是几个列名,就要绑定几个列名。...当使用 fetch() 进行查询结果对象的遍历时,就像使用引用的方式为这 4 个列变量赋值。...而真正获得结果集的数据其实是通过另一个方法来获得一个 MySQLI_result 对象,然后再使用这个对象里面的方法就可以像 PDO 的 fetch() 一样来获得真正的结果集了。...保存结果集及游标移动 最后就是关于游标的移动,上面的测试数据中我们可以查询到 7 条数据,并且第一条数据的 id 是 42 ,通过游标,我们可以不在 SQL 语句中使用 limit 而直接操作结果集来获取需要的数据
PHP开发中,使用Mysql扩展来链接Mysql数据库进行增删改查等操作。 在选择Mysql扩展的时候,官方提供了两种: MySQL 原始版。...("user", $conn); mysql_query("set names 'utf8'"); echo "数据库连接成功"; //Mysqli连接 $conn = mysqli_connect...$conn) { die("数据库连接错误" . mysqli_connect_error()); } else { echo"数据库连接成功"; } 顺便说 mysqlnd...由zend公司开发的MySQL数据库驱动。 mysqlnd 提供了和Zend引擎高度的集成性,更加快速的执行速度,更少的内存消耗,利用了PHP的Stream API,以及客户端缓存机制。...建议 PHP版本为5.x建议使用 mysqli 扩展。 PHP版本为7 只能使用 mysqli 扩展。 Thanks ~
PHP中的MySQLi扩展学习(四)mysqli的事务与预处理语句 对于 MySQLi 来说,事务和预处理语句当然是它之所以能够淘汰 MySQL(原始) 扩展的资本。...而在 MySQLi 中,我们则需要指定 MySQLi_Driver 对象中的报错属性为抛出异常,很明显,MySQLi_Driver 就是 MySQLi 的驱动对象。...// 使用异常处理错误情况 $driver = new mysqli_driver(); $driver->report_mode = MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT...这个参数表明的是绑定数据的类型,s 就是字符串类型。其它的类型我们在学习 MySQLi_STMT 相关的内容时再深入的了解。...对于我们来说,还是多以学习了解为主,在自己封装或者使用某些以 MySQLi 为底层数据库操作的框架时不至于晕头转向。
PHP连接和操作MySQL数据库的常用方式有3种,分别是MySQLi (面向对象),MySQLi (面向过程),PDO (面向对象)。...MySQLi和PDO 都是PHP的扩展,MySQLi只针对 MySQL 数据库,PDO则可以应用在十几种数据库中。而面向对象和面向过程是项目开发中两种不同的编程思想。...PHP与数据库的交互是先连接,再操作,最后关闭连接。其中操作包括插入,读取,修改,删除这四个基本的功能。以下演示的将是MySQLi (面向对象)的代码示例。...php //数据库地址 $servername = "localhost"; //数据库账号 $username = "root"; //数据库密码 $password = "123456"; //数据库名称...$database = 'testDB' // 创建连接 $conn = new mysqli($servername, $username, $password, $database); // 检测连接并展示错误
PHP5.0开始,不仅可以使用早期的mysql数据库扩展函数,还能使用新扩展的mysqli技术实现与mysql数据库的信息交流,PHP的mysqli扩展被封装在在一个类中,它是一种面向对象技术,只能在PHP5...和MYSQL4,1或更高的版本才能使用,(i)表示该进,使用mysqli,执行速度更快,更方便,更高效,也可以使数据库访问更安全(因为用类模式) 使用mysqli 简单流程 设置PHP.ini 配置文件...extension=php_mysqli.dll 创建连接: 微信图片_20191129170748.jpg 检测连接: 微信图片_20191129170806.jpg 获取数据库返回值: 微信图片....jpg 查询: 微信图片_20191129171041.jpg 三种处理查询结果: 微信图片_20191129171057.jpg 关联数组,就是嵌套的数组 如: 微信图片_20191129171114...; $stms = $mysqli->prepare($sql); 2.绑定数据 $stms->bind_param('ss',$name,$pwd); (注意'ss':其要与后面的变量对应($
领取专属 10元无门槛券
手把手带您无忧上云