0375-3382118

可以设置电话、微信、qq,并显示不同的图标

php操作MySQL数据库的方法和解析

admin9个月前47

  对于许多web应用程序而言,数据库都是其核心所在。数据库几乎可以用来存储所有你想要检索和更新的任何信息

  下面介绍两种数据库的访问方式:

  ①. MySQLi 访问MySQLi (面向对象)数据库,其中MYSQLi又分为 面向对象 和 面向过程两种形式

  ②. PDO访问MYSQL数据库

  MySQLi 和 PDO那个更好???

  MySQLi 和 PDO 各有优势

  1.MySQLi只针对MySQL数据库,PDO支持12种数据库

  2.两者都是面向对象, 但 MySQLi 还提供了 API 接口

  3.两者都支持预处理语句。 预处理语句可以防止 SQL 注入,对于 web 项目的安全性是非常重要的。

  下面实例来展示一下它们的不同之处:

  先创建数据库和表

   

  定义数据库连接所需的参数

   

  1.MySQLi (面向对象) 连接

   

  2.MySQLi (面向过程) 连接

   

  3.PDO连接

   

  MySQLi和PDO在连接数据库上的不同

  一.

  ①.MySQLi仅针对MYSQL数据库,所以在连接数据库时无需指定数据库类型(就一种数据库,哪还有什么类型可选,直接就默认为MySQL啦!)

  ②.PDO支持多种数据库的访问,所以在连接数据库时必须指定数据库类型,不然会报错(PDO可以访问那么多种数据库,你不指定鬼知道你要访问哪种类型的数据库呀!)

  二.

  ①.MySQLi连接数据库时,可以指定数据库名,也可以不指定数据库名

  ②.PDO连接数据库时,必须指定数据库名,不然会报错

  MySQLi面向对象和面向过程方式的异同

  一.

   

  我也刚开始学PHP访问数据库,所以我除了它们的连接上有明显区别之外,还没发现MySQLi面向对象 和 MySQLi面向过程的其他不同之处!!!

   

  一直以来都以为是MySQLi面向对象专用的,是MySQLi面向过程专用的,没想到不是!

  我想了解这其中的区别?希望有那位了解的大佬能告诉我,谢谢!

  PDO执行sql语句所用方法解析

  一.

  ①.当执行insert,update,delete等没有返回结果集的查询时,用PDO对象中的exec()方法来执行,执行成功后会返回受影响的行数

  注意:exec()方法不能用于执行select查询,因为执行select查询会返回结果集

   

  二.

  ①. 当执行返回结果集的select查询,则使用PDO对象中的query()方法来执行;

  该方法成功执行后,会返回一个结果集,并且可以通过PDOStatement对象中的rowCount()方法来获取返回结果集的行数

   

  ②. MYSQLi访问数据库时,可以通过num_rows来获取返回结果集的行数

   

  三.

  ①. execute()用于执行prepare预处理语句。

  在执行prepare预处理语句时,可以使用bindParam()方法来绑定参数,并对参数进行编码,然后给execute()执行。

  也可以在执行execute()方法绑定参数

  ②.1.MySQLi 执行prepare()预处理语句时,使用bind_param()方法来绑定参数

   

  2.PDO执行prepare()预处理语句时,使用bindParam()方法来绑定数据库

   

  3.直接在执行execute()方法时绑定参数

   

  PDO获取结果集的方法

  ①. 获取结果集的的方法。fetch() ,fetchAll() , . . .

  1.fetch()

  fetch()用于获取结果集的下一行,一次检索一行,然后将获取的数据放到关联的数组中。

  2.fetchAll()

  fetchAll()方法用于获取结果集中的所有行,其返回值是一个包含结果集中所有数据的二进制数组。

  ②.结果集的返回方式

  众所周知,我们平时获取数组的值时,一般都是通过数字索引或者是其字符串键来获取的

  fetch()方法返回结果集的方式是由其参数控制,

  参数为为PDO::FETCH_ASSOC,即通过列名作为数组索引来获取

  参数为PDO::FETCH_NUM时,通过列号作为索引来获取

  参数为PDO::FETCH_BOTH时,即可通过列名来获取也可通过列号来获取,不写参数时,默认为PDO::FETCH_BOTH

  参数为PDO::FETCH_BOTH时

   

  参数为PDO::FETCH_ASSOC

   

  参数为PDO::FETCH_NUM

   

  参考资料

  http://www.runoob.com/php/php-mysql-connect.html

  http://blog.okbase.net/phpchina/archive/731.html

  https://blog.csdn.net/sck0088/article/details/45674193

  https://www.cnblogs.com/dee0912/p/4093014.html

  https://www.jb51.net/article/105797.htm

   

BC链 http://www.chinabic.com/?id=216 转载需授权!

网友评论