位置:首页 » 文章/教程分享 » php通过PDO连接mysql与sqlserver

PDO 支持面向对象的方式处理各种数据库(如:mysql、oracle、db2等),也就是说,PDO 支持跨数据库类型。

PDO 中也支持预处理和参数绑定。

连接MySQL:

<?php 
$dsn='mysql:host=localhost;dbname=mssc';
$user='root';
$password='';
$status=1;
try {
    $sql='select * from onethink_order where status=:status';
    $dbh=new PDO($dsn,$user,$password);
    $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 
    $stmt=$dbh->prepare($sql);
    $stmt->bindParam(':status',$status);
    $stmt->execute();
    //返回插入、更新、删除的受影响行数
    // echo $stmt->rowCount();
    //返回最后插入的id
    // echo 'ID of last insert:'.$dbh->lastInsertId();
    while ($row=$stmt->fetch(PDO::FETCH_ASSOC)) {
        echo $row['id']."\t".$row['status'].'</br>';
    }
} catch (PDOException $e) {
    echo 'SQL Query:'.$sql.'</br>';
    echo 'Connection failed:'.$e->getMessage();
}

 ?>


连接SQLServer:

<?php
try {   
        $dbName = "sqlsrv:Server=127.0.0.1,1433;Database=dbPHP";   
        $dbUser = "sa";   
        $dbPassword = "fuke";   
        $db = new PDO($dbName, $dbUser, $dbPassword);       
        if ($db)   
        {       
                  echo "database connect succeed.<br />";   
        }
}
catch (PDOException $e)
{   
       $content = iconv("UTF-8","gbk",$e->getMessage());    
       echo   $content . "<br />";}echo "Hello World!";
}
?>


常用的方法:

exec() 方法
exec() 用来执行写操作的SQL语句,如insert,delete,update等。执行成功返回受影响的行数,失败返回false。

$stmt = $pdo->prepare('insert user(name,balance) value(?,?)'); 
 
$name = "老王";
$balance = 1888;
 
// 参数绑定
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $balance);
 
$res = $stmt->execute();

名称占位符(:名称)
参数和名称占位符的匹配按照名称进行匹配,和顺序无关。

$stmt = $pdo->prepare('insert user(name,balance) value(:a,:b)');
 
$name = "老王";
$balance = 2888;
 
// 参数绑定
$stmt->bindParam(":a", $name);
$stmt->bindParam(":b", $balance);
 
$res = $stmt->execute();