PHP 访问数据库通常是通过使用数据库扩展来实现的,最常用的是 MySQLi 和 PDO(PHP Data Objects)。这两种方法都提供了连接数据库、执行 SQL 查询和处理结果的功能。
$host = 'localhost';
$user = 'username';
$password = 'password';
$dbname = 'database_name';
$conn = mysqli_connect($host, $user, $password, $dbname);
if (!$conn) {
die('Connection failed: ' . mysqli_connect_error());
}
$sql = "SELECT id, name FROM users";
$result = mysqli_query($conn, $sql);
while ($row = mysqli_fetch_assoc($result)) {
echo 'ID: ' . $row['id'] . ' - Name: ' . $row['name'] . '<br>';
}
mysqli_close($conn);
$host = 'localhost';
$dbname = 'database_name';
$user = 'username';
$password = 'password';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->query("SELECT id, name FROM users");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo 'ID: ' . $row['id'] . ' - Name: ' . $row['name'] . '<br>';
}
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
原因:可能是数据库服务器未启动、用户名或密码错误、数据库名称错误等。
解决方法:
原因:直接将用户输入拼接到 SQL 查询中,导致恶意用户可以执行任意 SQL 语句。
解决方法:
原因:查询效率低下、数据库设计不合理、索引缺失等。
解决方法:
在选择使用 MySQLi 还是 PDO 时,应根据项目需求和个人偏好来决定。如果需要跨数据库支持,PDO 是更好的选择;如果只需要访问 MySQL 数据库,并且需要使用最新的 MySQL 功能,MySQLi 可能更合适。
领取专属 10元无门槛券
手把手带您无忧上云