php pdo连接数据库操作示例
PHP PDO是PHP语言的一种数据库访问方式,是一种安全稳定的访问数据库的方法。它通过数据库连接池的方式来与数据库建立连接,使得PHP应用能够在高并发、高负载的情况下安全稳定地执行对数据库的操作。
在使用PDO连接数据库之前,需要安装pdo_mysql扩展和mysql数据库。PDO的连接方式有以下几种:
1. 通过DSN连接数据库
DSN是Data Source Name的缩写,可以包含数据库的类型、主机名、数据库名称等信息。下面是一个例子:
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
这个例子中,使用PDO连接了一个名为test的MySQL数据库。
2. 通过PDO的构造函数连接数据库
通过PDO的构造函数连接数据库是通过指定数据库的参数来连接数据库,参数包括数据库的类型、主机名、数据库名称、用户名和密码等。下面是一个例子:
$dbhost = 'localhost';
$dbname = 'test';
$dbuser = 'root';
$dbpass = '123456';
try {
$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "连接失败:" . $e->getMessage();
exit;
}
在这个例子中,通过try-catch语句来处理连接失败时的异常信息。
3. 通过PDO连接池连接数据库
PDO连接池是一种多连接共享的机制,它可以使得PHP应用在线程间、请求间安全可靠地共享连接。
连接池也可以通过PDO的构造函数来创建:
class MyPDO extends PDO {
public static $instance;
public function __construct($dsn, $username, $passwd, $options = array()) {
parent::__construct($dsn,$username,$passwd, $options);
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
self::$instance = $this;
}
public static function getInstance() {
return self::$instance;
}
}
这个例子中,定义了一个MyPDO类,通过设置静态变量$instance来使得多次连接实例公用同一个连接。
在连接数据库之后,就可以执行一系列的数据库操作了,包括查询和写操作。
查询操作可以用以下代码实现:
$sql = "SELECT * FROM USER WHERE id=1"; $stmt = $dbh->prepare($sql); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
这里使用了prepare()方法来进行安全查询,在execute()方法中可以绑定变量(参数),最后通过fetch(PDO::FETCH_ASSOC)方法来获取查询结果。
写操作可以用以下代码实现:
$sql = "INSERT INTO USER (username, password) VALUES (?, ?)"; $stmt = $dbh->prepare($sql); $stmt->bindParam(1, $username); $stmt->bindParam(2, $password); $stmt->execute();
prepare()方法同样用于安全的写操作,bindParam()方法用于绑定参数,最后调用execute()方法来执行写操作。
以上就是使用PDO连接数据库的操作示例,希望能够帮助到你。
