zoukankan      html  css  js  c++  java
  • PHP基础学习笔记5

    一、连接MYSQL

      1.1 MySQLi - 面向对象

      <?php
        $servername = "localhost";
        $username = "username";
        $password = "password";
        // 创建连接
        $conn = new mysqli($servername, $username, $password);
        // 检测连接
        if ($conn->connect_error) {
          die("连接失败: " . $conn->connect_error);
        }
        echo "连接成功";
      ?>
      关闭连接:$conn->close();

      1.2 MySQLi - 面向过程

       <?php
         $servername = "localhost";
         $username = "username";
         $password = "password";

          // 创建连接
          $conn = mysqli_connect($servername, $username, $password);

         // 检测连接
         if (!$conn) {
           die("Connection failed: " . mysqli_connect_error());
         }
         echo "连接成功";
       ?>

        关闭连接:mysqli_close($conn);

       1.3 PDO 

       <?php
         $servername = "localhost";
         $username = "username";
         $password = "password";

         try {
           $conn = new PDO("mysql:host=$servername;", $username, $password);
           echo "连接成功";
         }
         catch(PDOException $e)
         {
           echo $e->getMessage();
         }
       ?>

       关闭连接:$conn = null;   

     二、创建数据库

      2.1 MySQLI - 面向对象 

      <?php
        $servername = "localhost";
        $username = "username";
        $password = "password";

        // 创建连接
        $conn = new mysqli($servername, $username, $password);
        // 检测连接
        if ($conn->connect_error) {
          die("连接失败: " . $conn->connect_error);
        }

        // 创建数据库
        $sql = "CREATE DATABASE myDB";
        if ($conn->query($sql) === TRUE) {
          echo "数据库创建成功";
        } else {
          echo "Error creating database: " . $conn->error;
        }

        $conn->close();
      ?>

      2.2 MySQLi - 面向过程

      <?php
        $servername = "localhost";
        $username = "username";
        $password = "password";

        // 创建连接
        $conn = mysqli_connect($servername, $username, $password);
        // 检测连接
        if (!$conn) {
          die("连接失败: " . mysqli_connect_error());
        }

        // 创建数据库
        $sql = "CREATE DATABASE myDB";
        if (mysqli_query($conn, $sql)) {
          echo "数据库创建成功";
        } else {
          echo "Error creating database: " . mysqli_error($conn);
        }

        mysqli_close($conn);
      ?>

      2.3 PDO 

      <?php
        $servername = "localhost";
        $username = "username";
        $password = "password";

        try {
          $conn = new PDO("mysql:host=$servername", $username, $password);

          // 设置 PDO 错误模式为异常
          $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
          $sql = "CREATE DATABASE myDBPDO";

          // 使用 exec() ,因为没有结果返回
          $conn->exec($sql);

          echo "数据库创建成功<br>";
        }
        catch(PDOException $e)
        {
          echo $sql . "<br>" . $e->getMessage();
        }

        $conn = null;
      ?>

     

     三、创建数据库表 

      <?php
        $servername = "localhost";
        $username = "username";
        $password = "password";
        $dbname = "myDBPDO";

        try {
          $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
          // 设置 PDO 错误模式,用于抛出异常
          $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

          // 使用 sql 创建数据表
          $sql = "CREATE TABLE MyGuests (
            id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
            firstname VARCHAR(30) NOT NULL,
            lastname VARCHAR(30) NOT NULL,
            email VARCHAR(50),
            reg_date TIMESTAMP
          )";

          // 使用 exec() ,没有结果返回
          $conn->exec($sql);
          echo "数据表 MyGuests 创建成功";
        }
        catch(PDOException $e)
        {
          echo $sql . "<br>" . $e->getMessage();
        }

        $conn = null;
      ?>

     四、插入数据

      3.1 MYSQLi - 面向对象 

      <?php
        $servername = "localhost";
        $username = "username";
        $password = "password";
        $dbname = "myDB";

        // 创建连接
        $conn = new mysqli($servername, $username, $password, $dbname);
        // 检测连接
        if ($conn->connect_error) {
          die("连接失败: " . $conn->connect_error);
        }

        $sql = "INSERT INTO MyGuests (firstname, lastname, email)
        VALUES ('John', 'Doe', 'john@example.com')";

        if ($conn->query($sql) === TRUE) {
          echo "新记录插入成功";
        } else {
          echo "Error: " . $sql . "<br>" . $conn->error;
        }

        $conn->close();
      ?>

      3.2 MySQLi - 面向过程

      <?php
        $servername = "localhost";
        $username = "username";
        $password = "password";
        $dbname = "myDB";

        // 创建连接
        $conn = mysqli_connect($servername, $username, $password, $dbname);
        // 检测连接
        if (!$conn) {
          die("Connection failed: " . mysqli_connect_error());
        }

        $sql = "INSERT INTO MyGuests (firstname, lastname, email)
        VALUES ('John', 'Doe', 'john@example.com')";

        if (mysqli_query($conn, $sql)) {
          echo "新记录插入成功";
        } else {
          echo "Error: " . $sql . "<br>" . mysqli_error($conn);
        }

        mysqli_close($conn);
      ?>

      3.3 PDO 

      <?php
        $servername = "localhost";
        $username = "username";
        $password = "password";
        $dbname = "myDBPDO";

        try {
          $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
          // 设置 PDO 错误模式,用于抛出异常
          $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
          $sql = "INSERT INTO MyGuests (firstname, lastname, email)
          VALUES ('John', 'Doe', 'john@example.com')";
          // 使用 exec() ,没有结果返回
          $conn->exec($sql);
          echo "新记录插入成功";
        }
        catch(PDOException $e)
        {
          echo $sql . "<br>" . $e->getMessage();
        }

        $conn = null;
      ?>

     五、插入多条数据

      5.1 PDO

      <?php
        $servername = "localhost";
        $username = "username";
        $password = "password";
        $dbname = "myDBPDO";

        try {
          $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
          // set the PDO error mode to exception
          $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

          // 开始事务
          $conn->beginTransaction();
          // SQL 语句
          $conn->exec("INSERT INTO MyGuests (firstname, lastname, email)
          VALUES ('John', 'Doe', 'john@example.com')");
          $conn->exec("INSERT INTO MyGuests (firstname, lastname, email)
          VALUES ('Mary', 'Moe', 'mary@example.com')");
          $conn->exec("INSERT INTO MyGuests (firstname, lastname, email)
          VALUES ('Julie', 'Dooley', 'julie@example.com')");

          // 提交事务
          $conn->commit();
          echo "新记录插入成功";
        }
        catch(PDOException $e)
        {
          // 如果执行失败回滚
          $conn->rollback();
          echo $sql . "<br>" . $e->getMessage();
        }

        $conn = null;
      ?>

      5.2 使用预处理语句 

      <?php
        $servername = "localhost";
        $username = "username";
        $password = "password";
        $dbname = "myDB";

        // 创建连接
        $conn = new mysqli($servername, $username, $password, $dbname);
        // 检测连接
        if ($conn->connect_error) {
          die("连接失败: " . $conn->connect_error);
        } else {
          $sql = "INSERT INTO MyGuests(firstname, lastname, email) VALUES(?, ?, ?)";

          // 为 mysqli_stmt_prepare() 初始化 statement 对象
          $stmt = mysqli_stmt_init($conn);

          //预处理语句
          if (mysqli_stmt_prepare($stmt, $sql)) {
            // 绑定参数
            mysqli_stmt_bind_param($stmt, 'sss', $firstname, $lastname, $email);

            // 设置参数并执行
            $firstname = 'John';
            $lastname = 'Doe';
            $email = 'john@example.com';
            mysqli_stmt_execute($stmt);

            $firstname = 'Mary';
            $lastname = 'Moe';
            $email = 'mary@example.com';
            mysqli_stmt_execute($stmt);

            $firstname = 'Julie';
            $lastname = 'Dooley';
            $email = 'julie@example.com';
            mysqli_stmt_execute($stmt);
          }
        }
      ?>

      注意:函数mysqli_stmt_bind_param()绑定参数查询并将参数传递给数据库第二个参数是"sss",s 字符告诉 mysql 参数是字符串;以下列表展示了参数的类型;

        i - 整数
        d - 双精度浮点数
        s - 字符串
        b - 布尔值

     

     六、读取数据  

      6.1 面向对象 

      <?php
        $servername = "localhost";
        $username = "username";
        $password = "password";
        $dbname = "myDB";

        // 创建连接
        $conn = new mysqli($servername, $username, $password, $dbname);
        // Check connection
        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();
      ?>

      6.2 面向过程

      <?php
        $servername = "localhost";
        $username = "username";
        $password = "password";
        $dbname = "myDB";

        // 创建连接
        $conn = mysqli_connect($servername, $username, $password, $dbname);
        // Check connection
        if (!$conn) {
          die("连接失败: " . mysqli_connect_error());
        }

        $sql = "SELECT id, firstname, lastname FROM MyGuests";
        $result = mysqli_query($conn, $sql);

        if (mysqli_num_rows($result) > 0) {
          // 输出数据
          while($row = mysqli_fetch_assoc($result)) {
            echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
          }
        } else {
          echo "0 结果";
        }

        mysqli_close($conn);
      ?>

      6.3 PDO(使用预处理)

      <?php
        echo "<table style='border: solid 1px black;'>";
        echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";

        class TableRows extends RecursiveIteratorIterator {
          function __construct($it) {
            parent::__construct($it, self::LEAVES_ONLY);
          }

          function current() {
            return "<td style='150px;border:1px solid black;'>" . parent::current(). "</td>";
          }

          function beginChildren() {
            echo "<tr>";
          }  

          function endChildren() {
            echo "</tr>" . " ";
          }
        }

        $servername = "localhost";
        $username = "username";
        $password = "password";
        $dbname = "myDBPDO";

        try {
          $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
          $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
          $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests");
          $stmt->execute();

          // 设置结果集为关联数组
          $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
          foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
            echo $v;
          }
        }
        catch(PDOException $e) {
          echo "Error: " . $e->getMessage();
        }
        $conn = null;
        echo "</table>";
      ?>

  • 相关阅读:
    Java单链表的实现
    leetcode2
    Spring容器中Bean的生命周期
    my-leetcode
    Map及HashMap原理简述
    网站搭建:服务器+域名+备案
    浅谈X-UA-Compatible&viewport
    Hexo框架搭建个人博客
    Redis安装教程
    MySQL安装教程 --- 解压版
  • 原文地址:https://www.cnblogs.com/soldierback/p/11696556.html
Copyright © 2011-2022 走看看