记录值得记录下的事情

PHP PDO

PHP数据对象(PDO)扩展为PHP访问数据库定义了一个轻量级的一致接口。PDO提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。

配置信息

$dbms='mysql'; //数据库类型
$host='localhost'; //数据库主机名
$dbName='test_syc'; //使用的数据库
$user='root'; //数据库连接用户名
$pass='root'; //对应的密码
$dsn="$dbms:host=$host;dbname=$dbName;charset=utf8";

注意:如果不设置字符集,即使数据库已经设置了UTF-8,存入数据库的中文数据仍可能为乱码(需要保持代码、数据库设置、链接数据库时的字符集都保持为UTF-8

链接数据库

try {
    $db = new PDO($dsn, $user, $pass); //初始化一个PDO对象
    echo "连接成功<br/>";
} catch (PDOException $e) {
    die ("Error!: " . $e->getMessage() . "<br/>"); //打印错误信息

默认初始化的PDO不是长连接,如果需要数据库进行长连接,需要最后加一个参数:array(PDO::ATTR_PERSISTENT => true),变成这样:

$db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));

执行SQL

//查询    
$sql = "SELECT * FROM test_syc WHERE uid = :id";    
$sql_data = Array(    
    ":id" => 1,
);    
$db_sql = $db->prepare($sql); //准备要执行的SQL语句并返回一个PDOStatement对象
$db_sql->execute($sql_data); //执行一条预处理语句

$result = $db_sql->fetch(PDO::FETCH_ASSOC); //获取一条
$result_all = $db_sql->fetchAll(PDO::FETCH_ASSOC); //获取所有

//判断是否成功    
if($result){    
    // 查询成功    
}else{    
    // 查询失败    
}  

标签: PHP, PDO, SQL

添加新评论