PHP7的连接数据库的三种方法

使用原生PHP来连接MySQL的方法有 MySQL库、MySQLi库以及PDO,由于PHP 7已经废除 MySQL库,所以建议使用MySQLi和PDO。

连接 MySQLi有两种风格:
  • 面向对象风格(推荐)
  • 过程化风格

面向对象风格:
1
<?php
2
3
$mysqli = new mysqli('localhost', 'root', '123456', 'test_laravel');
4
5
if ($mysqli->connect_error) {
6
    die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
7
}
8
9
$result = $mysqli->query('select * from articles');
10
$row = $result->fetch_array(MYSQLI_ASSOC);
11
print_r($row);
12
13
// 关闭mysql连接
14
$mysqli->close();
15
运行:
  1. Array  
  2. (  
  3.     [id] => 1  
  4.     [title] => My new title  
  5.     [body] => First Body  
  6.     [created_at] => 2017-05-22 11:10:20  
  7.     [updated_at] => 2017-05-22 11:30:58  
  8.     [published_at] => 2017-05-22 11:10:00  
  9.     [excerpt] =>  
  10. )  


fetch_array方法如果不带参数的话,则默认是MYSQLI _BOTH,输出是这样的:
1
(
2
    [0] => 1
3
    [id] => 1
4
    [1] => My new title
5
    [title] => My new title
6
    [2] => First Body
7
    [body] => First Body
8
    [3] => 2017-05-22 11:10:20
9
    [created_at] => 2017-05-22 11:10:20
10
    [4] => 2017-05-22 11:30:58
11
    [updated_at] => 2017-05-22 11:30:58
12
    [5] => 2017-05-22 11:10:00
13
    [published_at] => 2017-05-22 11:10:00
14
    [6] =>
15
    [excerpt] =>
16
)
也可以选择MYSQLI _NUM
  1. Array  
  2. (  
  3.     [0] => 1  
  4.     [1] => My new title  
  5.     [2] => First Body  
  6.     [3] => 2017-05-22 11:10:20  
  7.     [4] => 2017-05-22 11:30:58  
  8.     [5] => 2017-05-22 11:10:00  
  9.     [6] =>  
  10. )  

一般来说,选择MySQLI _ASSOC

面向过程化风格:
1
<?php
2
3
$mysqli = mysqli_connect('localhost', 'root', '123456', 'test_laravel');
4
5
if (mysqli_connect_error()) {
6
    die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
7
}
8
9
$result = mysqli_query($mysqli, 'select * from articles');
10
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
11
print_r($row);
12
13
// 关闭mysql连接
14
mysqli_close($mysqli);
15
运行和上面一致。

使用PDO连接mysql:
  1. <?php  
  2.   
  3. try {  
  4.     $PDO = new PDO('mysql:host=localhost;dbname=test_laravel''root''123456');  
  5.     $result = $PDO->query('select * from articles');  
  6.     $row = $result->fetch(PDO::FETCH_ASSOC);  
  7.     print_r($row);  
  8.   
  9.     // 关闭mysqi连接  
  10.     $PDO = null;  
  11. } catch (PDOException $e) {  
  12.     die('Connection failed: ' . $e->getMessage());  
  13. }  


PDO的fetch方法不带参数的话,默认是:PDO::FETCH_BOTH,也可以PDO::FETCH_NUM和PDO::FETCH_ASSOC等,一般来说选择PDO::FETCH_ASSOC即可。

总结:使用PDO或者是MySQLi都是可以的,但网上更推荐使用PDO来连接数据库,这是因为PDO支持12种不同的数据库驱动程序,而MySQLi只能支持MySQL,另外PDO的性能也更高。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值