一、PDO简介
PDO(PHP Data Objects)是PHP的一个轻量级的、通用的数据访问层,它提供了一个统一的接口来访问不同类型的数据库。与之前常用的mysql_*函数和mysqli_*函数相比,PDO具备更好的安全性、更好的性能,并且支持更广泛的数据库类型,包括MySQL、SQLite、Oracle、PostgreSQL等。
使用PDO连接MySQL数据库需要以下参数:
– 数据库主机名
– 数据库名称
– 数据库用户名
– 数据库用户密码
二、PDO连接MySQL数据库
下面是一个PDO连接MySQL数据库的代码示例:
try { // 数据库信息 $host = 'localhost'; $dbname = 'testdb'; $user = 'testuser'; $pass = 'testpass'; // 连接数据库 $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass); // 设置错误模式为抛出异常 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { echo '连接数据库失败:' . $e->getMessage(); }
这段代码尝试连接名为testdb的MySQL数据库,并且将错误模式设置为抛出异常。如果连接失败,将输出错误信息。
三、PDO查询数据
在PDO中,查询数据需要执行SQL语句,并且通过PDOStatement对象获取查询结果。下面是一个PDO查询数据的代码示例:
try { // 数据库信息 $host = 'localhost'; $dbname = 'testdb'; $user = 'testuser'; $pass = 'testpass'; // 连接数据库 $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass); // 设置错误模式为抛出异常 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 查询数据 $stmt = $pdo->query('SELECT name, age, gender FROM users'); // 获取查询结果 $result = $stmt->fetchAll(PDO::FETCH_ASSOC); // 输出查询结果 foreach ($result as $row) { echo "{$row['name']}, {$row['age']}, {$row['gender']}\n"; } } catch (PDOException $e) { echo '查询数据失败:' . $e->getMessage(); }
这段代码查询名为users的表中的所有数据,并且通过PDOStatement对象的fetchAll方法获取查询结果,最后遍历查询结果输出每行数据的name、age、gender字段。
四、PDO插入数据
在PDO中,插入数据需要执行SQL语句,并且通过PDOStatement对象获取插入的行数。下面是一个PDO插入数据的代码示例:
try { // 数据库信息 $host = 'localhost'; $dbname = 'testdb'; $user = 'testuser'; $pass = 'testpass'; // 连接数据库 $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass); // 设置错误模式为抛出异常 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 插入数据 $stmt = $pdo->prepare('INSERT INTO users (name, age, gender) VALUES (?, ?, ?)'); $result = $stmt->execute(array('Tom', 18, 'male')); // 获取插入的行数 $count = $stmt->rowCount(); echo "插入了 {$count} 行数据\n"; } catch (PDOException $e) { echo '插入数据失败:' . $e->getMessage(); }
这段代码插入一行数据到名为users的表中,并且通过PDOStatement对象的rowCount方法获取插入的行数。
五、PDO更新数据
在PDO中,更新数据需要执行SQL语句,并且通过PDOStatement对象获取更新的行数。下面是一个PDO更新数据的代码示例:
try { // 数据库信息 $host = 'localhost'; $dbname = 'testdb'; $user = 'testuser'; $pass = 'testpass'; // 连接数据库 $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass); // 设置错误模式为抛出异常 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 更新数据 $stmt = $pdo->prepare('UPDATE users SET age = ? WHERE name = ?'); $result = $stmt->execute(array(20, 'Tom')); // 获取更新的行数 $count = $stmt->rowCount(); echo "更新了 {$count} 行数据\n"; } catch (PDOException $e) { echo '更新数据失败:' . $e->getMessage(); }
这段代码更新名为users的表中Tom的age字段为20,并且通过PDOStatement对象的rowCount方法获取更新的行数。
六、PDO删除数据
在PDO中,删除数据需要执行SQL语句,并且通过PDOStatement对象获取删除的行数。下面是一个PDO删除数据的代码示例:
try { // 数据库信息 $host = 'localhost'; $dbname = 'testdb'; $user = 'testuser'; $pass = 'testpass'; // 连接数据库 $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass); // 设置错误模式为抛出异常 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 删除数据 $stmt = $pdo->prepare('DELETE FROM users WHERE name = ?'); $result = $stmt->execute(array('Tom')); // 获取删除的行数 $count = $stmt->rowCount(); echo "删除了 {$count} 行数据\n"; } catch (PDOException $e) { echo '删除数据失败:' . $e->getMessage(); }
这段代码删除名为users的表中name字段为Tom的行,并且通过PDOStatement对象的rowCount方法获取删除的行数。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/196992.html