php查询数据库有哪些方法

发布时间:2024-12-28 02:26:54 作者:小樊
来源:亿速云 阅读:99

在PHP中查询数据库,主要有以下几种方法:

  1. MySQLi(MySQL Improved Extension):MySQLi 是一个用于操作 MySQL 数据库的 PHP 扩展。它提供了面向对象和过程式的接口来执行 SQL 查询、管理数据库连接等。

    • 面向对象的用法:

      $conn = new mysqli("localhost", "username", "password", "database");
      if ($conn->connect_error) {
          die("连接失败: " . $conn->connect_error);
      }
      $sql = "SELECT * FROM table_name";
      $result = $conn->query($sql);
      if ($result->num_rows > 0) {
          while($row = $result->fetch_assoc()) {
              echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
          }
      } else {
          echo "0 结果";
      }
      $conn->close();
      
    • 过程式的用法:

      $conn = mysqli_connect("localhost", "username", "password", "database");
      if (!$conn) {
          die("连接失败: " . mysqli_connect_error());
      }
      $sql = "SELECT * FROM table_name";
      $result = mysqli_query($conn, $sql);
      if (mysqli_num_rows($result) > 0) {
          while($row = mysqli_fetch_assoc($result)) {
              echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
          }
      } else {
          echo "0 结果";
      }
      mysqli_close($conn);
      
  2. PDO(PHP Data Objects):PDO 是一个在 PHP 中访问数据库的轻量级、一致的接口。支持多种数据库类型,如 MySQL、PostgreSQL、SQLite 等。使用 PDO可以使你更方便地在不同的数据库之间切换。

    try {
        $conn = new PDO("mysql:host=localhost;dbname=database", "username", "password");
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $stmt = $conn->prepare("SELECT * FROM table_name");
        $stmt->execute();
        $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
        foreach($stmt->fetchAll() as $row) {
            echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
        }
    } catch(PDOException $e) {
        echo "连接失败: " . $e->getMessage();
    }
    $conn = null;
    
  3. SQL Server:对于 SQL Server 数据库,可以使用 sqlsrv 扩展或 PDO_SQLSRV 驱动程序。

    • 使用 sqlsrv 扩展(面向对象):

      $conn = new sqlsrv\Connection("server=localhost;Database=database", "username", "password");
      $conn->connect();
      $tsql = "SELECT * FROM table_name";
      $getResults = $conn->query($tsql);
      if ($getResults == FALSE) {
          die(print_r($conn->errors, true));
      }
      while ($row = $getResults->fetchArray()) {
          echo "id: " . $row['id'] . " - Name: " . $row['name'] . "<br>";
      }
      $conn->close();
      
    • 使用 sqlsrv 扩展(过程式):

      $conn = sqlsrv_connect("server=localhost;Database=database", array("Database" => "database", "Uid" => "username", "PWD" => "password"));
      if (!$conn) {
          die(print_r(sqlsrv_errors(), true));
      }
      $tsql = "SELECT * FROM table_name";
      $getResults = sqlsrv_query($conn, $tsql);
      if ($getResults === FALSE) {
          die(print_r(sqlsrv_errors(), true));
      }
      while ($row = sqlsrv_fetch_array($getResults, SQLSRV_FETCH_ASSOC)) {
          echo "id: " . $row['id'] . " - Name: " . $row['name'] . "<br>";
      }
      sqlsrv_free_stmt($getResults);
      sqlsrv_close($conn);
      
    • 使用 PDO_SQLSRV 驱动程序(面向对象):

      try {
          $conn = new PDO("sqlsrv:server=localhost;Database=database", "username", "password");
          $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
          $stmt = $conn->prepare("SELECT * FROM table_name");
          $stmt->execute();
          $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
          foreach($stmt->fetchAll() as $row) {
              echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
          }
      } catch(PDOException $e) {
          echo "连接失败: " . $e->getMessage();
      }
      $conn = null;
      
  4. Oracle:对于 Oracle 数据库,可以使用 oci8 扩展。

    $conn = oci_connect("username", "password", "//localhost/dbname");
    if (!$conn) {
        $e = oci_error();
        trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
    }
    $sql = "SELECT * FROM table_name";
    $result = oci_parse($conn, $sql);
    if (!$result) {
        $e = oci_error($conn);
        trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
    }
    oci_execute($result);
    while ($row = oci_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
    }
    oci_free_statement($result);
    oci_close($conn);
    

这些方法都可以用于查询数据库,具体选择哪种方法取决于你的需求和项目类型。如果你需要在多个数据库之间切换,建议使用 PDO。

推荐阅读:
  1. php结合js实现多条件组合查询
  2. mysql查询数据库有多少表的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php

上一篇:数据库怎样在php中使用

下一篇:如何用php更新数据库记录

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》