PHP连接MySQL数据库的几种方法

PHP连接MySQL的五种方法
本文详细介绍了使用PHP连接MySQL数据库的五种常见方法,包括传统的mysql_扩展、mysqli扩展的面向过程和面向对象方式、PDO扩展以及ADODB类库,并提供了具体的代码示例。

1、最简单的方式:mysql - 面向过程

<?php
$con = mysql_connect("localhost", "root", "password");
$select_db = mysql_select_db('test');
if (!$select_db) {
    die("could not connect to the db:\n" .  mysql_error());
}
//查询代码
$sql = "select * from table_name";
$res = mysql_query($sql);
if (!$res) {
    die("could get the res:\n" . mysql_error());
}
while ($row = mysql_fetch_assoc($res)) {
    print_r($row);
}
//关闭数据库连接
mysql_close($con);
?>

2、新的方式:mysqli - 面向过程

<?php
$host = 'localhost';
$user = 'root';
$password = 'password';
$database = 'test';
$conn = mysqli_connect($host, $user, $password, $database, $port); // 连接数据库
//连接数据库错误提示
if (mysqli_connect_errno($conn)) { 
    die("连接 MySQL 失败: " . mysqli_connect_error()); 
}
mysqli_query($conn,"set names utf8"); // 数据库编码格式
// mysqli_set_charset($conn, "utf8"); // 设置默认客户端字符集
// mysqli_select_db($conn, $database); // 更改连接的默认数据库
//查询代码
$sql = “select * from table_name”;
$query = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($query)){
    echo $row['title'].PHP_EOL;
}
// 释放结果集
mysqli_free_result($result);
// 关闭MySQL数据库连接
mysqli_close($conn);

// 示例
$con = mysqli_connect('host', 'user','password','database','port');
if(!$con){
    echo "connect fail \n";
    die("连接错误: " . mysqli_connect_error());
}
//var_dump($con);die;
mysqli_query($con, "set names latin1");
$sql = "select * from db_name.t_scenario_sp_map where F_sp_id in ('1000000033','1000000034')";
$res = mysqli_query($con, $sql);
//var_dump($res);die;
//var_dump($res->fetch_row());die;
$ret = array();
while($row = mysqli_fetch_assoc($res)){
    $ret[] = $row;
}
var_dump($ret);die;
mysqli_close($con);

/*$ret = mysqli_fetch_assoc($res);
while ($ret){
    echo $ret['F_sp_id'];
    $displayName = mb_convert_encoding($ret['F_sp_display_name'], 'utf-8', 'GBK');
    echo $displayName;
    $ret = mysqli_fetch_assoc($res);
}*/

3、常用方式:mysqli - 面向对象

<?php
//连接数据库方式1
$conn = new mysqli('host', 'user', 'password', 'database', 'port');
//连接数据库方式2
// $conn = new mysqli();
// $conn -> connect('host', 'user', 'password', 'database', 'port');
//check connection (检查PHP是否连接上MYSQL)
if ($conn -> connect_errno) {
    printf("Connect failed: %s\n", $conn->connect_error);
    exit();
}
//查询代码
$sql = 'select * from t_test';
$query = $conn->query($sql);
while($row = $query->fetch_array()){
    echo $row['title'];
}
// 释放结果集
$query -> free_result();
// 关闭MySQL连接
$conn -> close();

4、PDO连接MySQL数据库

<?php
$db = new PDO('mysql:host=host;port=port;database=database', 'user', 'password');
try {
    foreach ($db->query('select * from t_test') as $row){
        print_r($row);
    }
    $db = null; //关闭数据库
} catch (PDOException $e) {
    echo $e->getMessage();
}

// 示例
$dbms='mysql';
$host='';
$port = ;
$dbName='';
$user='';
$pass='';
$dsn="$dbms:host=$host;port=$port;dbname=$dbName";
try {
    $pdo = new PDO($dsn, $user, $pass);
    //print_r($dbh);
    $pdo->exec("set names 'latin1'");
    $sql = "select * from db_name.t_scenario_sp_map where F_sp_id in ('1000000033','1000000034')";
    $stmt = $pdo->prepare($sql);
    $rs = $stmt->execute();
    $ret = array();
    if ($rs) {
        // PDO::FETCH_ASSOC 关联数组形式
        // PDO::FETCH_NUM 数字索引数组形式
        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            $ret[] = $row;
        }
    }
    var_dump($ret);die;
    /*foreach($pdo->query("select * from db_name.t_scenario_sp_map where F_sp_id in ('1000000033','1000000034')") as $row) {
        var_dump($row);die;
    }*/
    $pdo = null;
} catch (Exception $e) {
    print_r($e);
    die ("Error!: " . $e->getMessage() . "\n");
}
?>

5、ADODB连接MySQL数据库

<?php
// 安装驱动-引入类即可
// adodb.inc.php包含所有数据库类包含的使用函数,必须加载
require_once './adodb5/adodb.inc.php';
$conn = &ADONewConnection('mysql');
$conn->connect('localhost','root','password','test');
$conn->Execute("set names utf8");
//查询代码
$res = $conn->Execute("select * from db_table");
if (!$res){
    echo $conn->ErrorMsg();
}else{
    var_dump($res);
}
//关闭连接
$conn->close();
?>

6、关闭mysql数据库连接方法

MySQL-面向过程:mysql_close($conn);
MySQLi-面向过程:mysqli_close($conn);
MySQLi-面向对象:$conn->close();
PDO:$conn = null;
ADODB:$conn->close(); 或 $conn->free();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值