PHP PDO学习笔记:获取数据库数据 (php pdo获取数据库)
在PHP应用程序中,要操作数据库就必须掌握相应的数据库操作知识,PDO(PHP Data Objects)就是PHP中连接数据库的扩展程序之一,它为程序员提供了一个良好的API,可以更方便地与数据库进行交互。本篇文章将介绍如何使用PDO获取MySQL数据库中的数据。
一、连接数据库
在使用PDO获取数据之前,首先需要通过PDO连接到MySQL数据库。连接MySQL数据库的基本语法如下:
“`
$dbname = ‘test’;
$dbuser = ‘root’;
$dbpassword = ‘root’;
$dbhost = ‘localhost’;
$dsn = “mysql:host={$dbhost};dbname={$dbname}”;
$dbh = new PDO($dsn, $dbuser, $dbpassword);
“`
这里我们定义了四个变量,分别是数据库名称、用户名、密码和数据库主机地址。使用这些变量定义了一个DSN(Data Source Name),然后使用PDO的构造函数建立与数据库的连接。如果连接失败,PDO将会抛出一个PDOException异常,我们可以使用try-catch语句捕获这个异常并进行相应的处理。
二、查询数据
连接到数据库之后,开始查询数据。PDO提供了三个查询方法,分别是query()、prepare()和exec()。其中query()方法用于执行一条SQL查询语句,它的返回值是一个PDOStatement对象,该对象包含了查询结果的所有数据。prepare()方法同样用于执行SQL语句,但它与query()方法不同的是它返回一个PDOStatement对象,该对象封装了查询的模板,我们可以通过模板填充外部数据来执行查询。而exec()方法用于执行SQL语句,但是它只返回受影响的行数,对于查询语句来说就没什么用了。
对于查询数据,我们通常使用query()方法,如下所示:
“`
$sql = “SELECT * FROM users”;
$stmt = $dbh->query($sql);
“`
在这里,我们定义了一条查询语句,它用SELECT语句获取users表中的所有数据。然后使用PDO的query()方法执行这条语句,并返回一个PDOStatement对象,我们将其保存在一个变量中。
三、获取数据
接下来我们需要从PDOStatement对象中获取数据。PDOStatement对象提供了三种获取数据的方法,分别是fetch()、fetchAll()和fetchColumn()。其中fetch()方法用于获取查询结果的一行数据,它可以接受两个参数:之一个参数用于设置返回数据的格式,可以是PDO::FETCH_ASSOC、PDO::FETCH_OBJ等;第二个参数用于设置获取数据的方式,可以是正数、负数或者零,分别代表不同的方式。fetchAll()方法与fetch()方法类似,不同的是它可以一次性获取所有查询结果的数据,返回值是一个二维数组。而fetchColumn()方法用于获取查询结果的指定列,返回指定列数据的之一行。
对于上面的查询结果,我们可以使用fetch()方法获取一行数据,如下所示:
“`
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row[‘id’] . ‘ – ‘ . $row[‘name’] . ‘
‘;
}
“`
在这里,我们使用while循环遍历PDOStatement对象中的数据,依次使用fetch()方法获取一行数据并输出。由于查询结果是一个关联数组,我们可以通过数组下标获取相应的数据值。
如果希望一次性获取所有查询结果的数据,可以使用fetchAll()方法,如下所示:
“`
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($data);
“`
在这里,我们使用fetchAll()方法获取所有查询结果的数据,并将数据保存在一个变量中。由于返回结果是一个二维数组,我们可以通过print_r()函数将结果输出。
四、
本篇文章介绍了如何使用PDO获取MySQL数据库中的数据。首先需要连接数据库,然后使用query()方法执行查询语句并返回一个PDOStatement对象,最后使用fetch()或者fetchAll()方法获取查询结果的数据。使用PDO可以更方便地与数据库进行交互,并提供了良好的安全性和可移植性。在运用PDO进行数据操作时,我们可以灵活应用上述查询数据的方法,对于我们的数据获取与处理能力来说具有很好的辅助与提升作用。