首页
学习
活动
专区
圈层
工具
发布

php连接mysql数据库常用函数例子

在PHP中连接MySQL数据库通常使用mysqli扩展或者PDO(PHP Data Objects)。以下是使用这两种方法连接MySQL数据库的示例代码:

使用mysqli扩展

代码语言:txt
复制
<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
echo "连接成功";

// 执行查询
$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();
?>

使用PDO

代码语言:txt
复制
<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // 设置 PDO 错误模式为异常
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "连接成功";
    
    // 执行查询
    $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests");
    $stmt->execute();

    // 设置结果集为关联数组
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
    foreach($stmt->fetchAll() as $row) {
        echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
    }
} catch(PDOException $e) {
    echo "连接失败: " . $e->getMessage();
}

$conn = null;
?>

基础概念

  • mysqli:是MySQL Improved Extension的缩写,是一个用于PHP操作MySQL数据库的扩展。
  • PDO:PHP Data Objects,提供了一个数据库访问抽象层,支持多种数据库。

优势

  • mysqli:提供了面向对象和过程两种接口,性能较好,支持最新的MySQL特性。
  • PDO:提供了一个统一的接口,可以无缝切换不同的数据库系统,安全性更高。

应用场景

  • mysqli:适用于需要高性能和对MySQL特定功能有需求的场景。
  • PDO:适用于需要支持多种数据库系统的应用,或者对代码的可移植性有较高要求的场景。

常见问题及解决方法

  1. 连接失败:检查数据库服务器地址、用户名、密码和数据库名是否正确。
  2. 查询失败:确保SQL语句正确无误,检查是否有权限执行该查询。
  3. 性能问题:优化SQL查询,使用索引,避免全表扫描。

在实际开发中,选择使用mysqli还是PDO取决于项目的具体需求和个人偏好。如果你预计将来可能需要更换数据库系统,或者希望代码更加通用,PDO可能是更好的选择。如果你对MySQL的性能有特别的要求,或者需要使用MySQL的高级特性,那么mysqli可能更适合。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券