一、连接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=‘width:150px;border:1px solid black;‘>" . parent::current(). "</td>";
          }
 
          function beginChildren() { 
                echo "<tr>"; 
          }   
 
          function endChildren() { 
                echo "</tr>" . "\n";
          } 
    } 
 
    $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>";
  ?>
原文:https://www.cnblogs.com/soldierback/p/11696556.html