zoukankan      html  css  js  c++  java
  • 【连接数据库】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
    运行:
    Array
    (
        [id] => 1
        [title] => My new title
        [body] => First Body
        [created_at] => 2017-05-22 11:10:20
        [updated_at] => 2017-05-22 11:30:58
        [published_at] => 2017-05-22 11:10:00
        [excerpt] =>
    )


    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
    Array
    (
        [0] => 1
        [1] => My new title
        [2] => First Body
        [3] => 2017-05-22 11:10:20
        [4] => 2017-05-22 11:30:58
        [5] => 2017-05-22 11:10:00
        [6] =>
    )

    一般来说,选择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:
    <?php
    
    try {
        $PDO = new PDO('mysql:host=localhost;dbname=test_laravel', 'root', '123456');
        $result = $PDO->query('select * from articles');
        $row = $result->fetch(PDO::FETCH_ASSOC);
        print_r($row);
    
        // 关闭mysqi连接
        $PDO = null;
    } catch (PDOException $e) {
        die('Connection failed: ' . $e->getMessage());
    }


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

    总结:使用PDO或者是MySQLi都是可以的,但网上更推荐使用PDO来连接数据库,这是因为PDO支持12种不同的数据库驱动程序,而MySQLi只能支持MySQL,另外PDO的性能也更高。




  • 相关阅读:
    oracle删除用户及其名下对象
    CENTOS7设置显示中文
    hadoop安装
    linux使用flock文件锁解决crontab冲突问题
    Hive On Spark和SparkSQL
    MapReduce和Tez对比
    安装python的redis模块
    拷贝一个用户下的所有表和数据到另外一个库
    java学习笔记10--泛型总结
    java学习笔记9--内部类总结
  • 原文地址:https://www.cnblogs.com/linewman/p/9918106.html
Copyright © 2011-2022 走看看