本文目录导读:
图片来源于网络,如有侵权联系删除
随着互联网技术的飞速发展,PHP作为一门流行的服务器端脚本语言,已经广泛应用于各种网站和应用程序的开发,在PHP应用中,数据库是不可或缺的一部分,用于存储、管理和查询数据,PHP服务器如何高效访问数据库呢?本文将深入浅出地为大家解答这个问题。
PHP访问数据库的常用方式
1、使用MySQLi或PDO扩展
MySQLi和PDO是PHP中两个常用的数据库访问扩展,它们都提供了丰富的API,可以方便地连接、查询和操作数据库。
(1)MySQLi扩展
MySQLi是PHP5.3及以上版本推荐使用的MySQL数据库访问扩展,它支持预处理语句,可以有效地防止SQL注入攻击。
示例代码:
图片来源于网络,如有侵权联系删除
<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "test"; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 执行查询 $sql = "SELECT id, firstname, lastname FROM MyGuests"; $result = $conn->query($sql); if ($result->num_rows > 0) { // 输出数据 while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; } } else { echo "0 结果"; } // 关闭连接 $conn->close(); ?>
(2)PDO扩展
PDO(PHP Data Objects)是PHP5及以上版本提供的一个数据库访问抽象层,它支持多种数据库,如MySQL、PostgreSQL、SQLite等,并提供了统一的API。
示例代码:
<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "test"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // 设置PDO错误模式为异常 $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "SELECT id, firstname, lastname FROM MyGuests"; $stmt = $conn->prepare($sql); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach ($result as $row) { echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; } } catch(PDOException $e) { echo "Error: " . $e->getMessage(); } $conn = null; ?>
2、使用mysqli_real_escape_string和PDO::quote函数
对于简单的字符串查询,可以使用mysqli_real_escape_string和PDO::quote函数来防止SQL注入攻击。
示例代码:
图片来源于网络,如有侵权联系删除
<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "test"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 使用mysqli_real_escape_string $firstname = $conn->real_escape_string($_POST['firstname']); $lastname = $conn->real_escape_string($_POST['lastname']); $sql = "INSERT INTO MyGuests (firstname, lastname) VALUES ('$firstname', '$lastname')"; if ($conn->query($sql) === TRUE) { echo "新记录插入成功"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close(); ?>
3、使用oci8扩展(仅适用于Oracle数据库)
oci8是PHP中用于访问Oracle数据库的扩展,它提供了丰富的API,可以方便地连接、查询和操作Oracle数据库。
示例代码:
<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "test"; $conn = oci_connect($username, $password, $servername); if (!$conn) { $m = oci_error(); echo $m['message'], " "; exit; } $sql = "SELECT id, firstname, lastname FROM MyGuests"; $stmt = oci_parse($conn, $sql); oci_execute($stmt); while ($row = oci_fetch_array($stmt, OCI_ASSOC+OCI_RETURN_NULLS)) { echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; } oci_free_statement($stmt); oci_close($conn); ?>
本文介绍了PHP服务器访问数据库的常用方式,包括MySQLi、PDO、mysqli_real_escape_string、PDO::quote和oci8等,在实际开发中,应根据项目需求和数据库类型选择合适的访问方式,为了提高安全性,应避免直接拼接SQL语句,使用预处理语句或参数化查询来防止SQL注入攻击。
标签: #php服务器怎么访问数据库
评论列表