PHP 5.2可以用PDO操作数据库,这里以mysql为例。
1、用try捕捉异常
/*
某些时候由于发生异常而使得系统自动报错,可能泄漏一些敏感信息,
所以用try把数据库操作的代码包起来,一旦发生异常,可以进行自定义的处理
*/
try {
2、告诉PDO当前使用的数据库类型和要操作的数据库地址和名称
/*
mysql表示我们使用的是mysql数据库,注意用冒号和后面分隔。
host=localhost表示数据库所在的主机,这里假设数据库在本机localhost,注意和后面用分号分隔。
dbname=shop表示操作的那个数据库名称,假设为shop
*/
$dsn = "mysql:host=localhost;dbname=shop";
3、新建一个PDO对象
/*
第一个参数用的是前面那个字符串$dsn。
第二个参数是数据库的用户名,假设是root。
第三个参数是数据库的密码,假设是pass。
*/
$db = new PDO($dsn, 'root', 'pass');
4、执行SQL语句
//假设查询的数据表product,查询字段为name
$sql = "SELECT name FROM product";
/*
PDO对象的方法query用来执行sql语句并返回结果,它的参数就是要执行的sql语句。
exec方法只返回受影响的行数,所以不要用它执行select。
query方法返回的其实是一个PDOStatement对象,通过它来进一步处理查询的结果
*/
$statement = $db->query($sql);
5、循环的获取每一个查询结果
/*
PDOStatement对象的方法fetch可以一条条的返回结果。
它的参数可以决定返回结果的方式,常用PDO::FETCH_ASSOC,表示用关联数组返回结果。
*/
//每次循环把结果赋给变量$result,这是个关联数组,键值为字段名
while ($result = $statement->fetch(PDO::FETCH_ASSOC ))
{
//输出每条结果
echo $result['name'];
}
6、如果不需要继续操作数据库,就销毁这个对象
$db = null;
7、用catch处理捕捉的异常(如果发生的话)
/*
在这些数据库操作过程中,一旦发生异常,try将把它传递给下面的catch。
catch的参数必须是某个异常类的对象,这里用的是PDO的异常类PDOException
*/
}catch (PDOException $e) {
//这里简单的自定义报错
echo '数据库操作发生错误';
}