PHP mysqli操作数据库

∫`不撒娇的折耳猫 2020-3-27 2157

链接数据库

在php5.3版本之后,想要连接数据库有两种方案,一种是通过mysqli,另外外一种是通过pdo

本文主要说的是如果通过mysqli面向对象的写法操作数据库。

 

在连接数据库之前,需要先通过变量存储好数据库的基本连接信息。

$servername = "localhost"; // 地址$username = "root"; // 用户名$password = ""; // 密码

实例化对象,并传入先关参数

$link = new mysqli($servername,$username,$password);

判断链接是否成功

// 检测连接是否成功
if($link->connect_error){     
    //如果没有错误,会返回一个NULL
    die("连接失败,错误:" . $link->connect_error);   //打印错误信息
}

链接之后,断开连接关闭数据库

$link->close();

完整demo:

<?php 
// php 连接Mysql// 通过mysqli  // 采用面向对象的写法来完成数据库的连接// 设置基础数据库信息
$servername = "localhost";$username = "root";$password = "";
// 创建连接
$link= new mysqli($servername,$username,$password);
// 检测连接是否成功if($link->connect_error){    
      die("连接失败,错误:" . $link->connect_error);}
      // 否则连接成功
      echo "连接成功!";
      // 连接之后,还需要将连接关闭
      $link->close();
?>

通过mysqli创建数据库

通过mysqli创建数据库,首先我们需要保证数据库的成功连接。

$servername = "localhost";
$username = "root";
$password = "";
// 创建连接
$link= new mysqli($servername,$username,$password);  
  
//检测是否成功
if($link->connect_error){    
    die("连接失败,错误:" . $link->connect_error);
}

接下来通过变量保存好sql语句。

// 设置sql语句
$sql = "create database stu_01  default character set = 'utf8' ";

检测数据库是否创建成功

// 发送sql语句 并且验证是否创建成功
if($link->query($sql) === TRUE){    
   echo "数据库创建成功.";
}else {    
   echo "数据库创建失败 ,错误信息为:" . $link->error; // 如果失败输出错误信息
}

断开连接,关闭数据库

// 关闭数据库
$conn->close();

添加数据库完整demo

<?php 

$servername = "localhost";$username = "root";$password = "";
// 创建连接$link= new mysqli($servername,$username,$password);    
if($link->connect_error){    
    die("连接失败,错误:" . $link->connect_error);
}
// 设置sql语句
$sql = "create database stu_01  default character set = 'utf8' ";
// 发送sql语句 并且验证是否创建成功
if($link->query($sql) === TRUE){    
    echo "数据库创建成功.";
}else {   
    echo "数据库创建失败 ,错误信息为:" . $link->error; // 如果失败输出错误信息
 }
 // 关闭数据库
 $conn->close();?>

通过mysqli 创建数据表

通过mysqli创建数据表,首先我们先来完成基本的数据库连接操作,

需要注意的是,因为我们是在数据库中创建一个数据表,所以需要在额外的配置一下数据库的信息:

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "stu_01"; // 要操作的数据库名

// 创建连接
 $link= new mysqli($servername,$username,$password,$dbname); 
 // 注意第四个参数
 if($link->connect_error){    
    die("连接失败,错误:" . $link->connect_error);
}

设定创建数据表的sql语句

create table stu_info(
    id int(6) unsigned auto_increment primary key,
    firstname varchar(30) not null,
    lastname varchar(30) not null,
    email varchar(50),
    reg_date timestamp
    )
/*
NOT NULL        - 每一行都必须含有值(不能为空),null 值是不允许的。
DEFAULT value   - 设置默认值
UNSIGNED        - 使用无符号数值类型,0 及正数
AUTO INCREMENT  - 设置 MySQL 字段的值在新增记录时每次自动增长 1
PRIMARY KEY     - 设置数据表中每条记录的唯一标识。 
           通常列的 PRIMARY KEY 设置为 ID 数值,与 AUTO_INCREMENT 一起使用。
注意:每个表都应该有一个主键(本列为 "id" 列),主键必须包含唯一的值。
*/

通过mysqli向数据表中插入信息

首先,连接数据库

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

接下来设置sql语句:

// 设置插入数据的sql语句 $sql = "insert into stu_info(firstname,lastname,email) values('张三','张小三','zhangsan@qq.com')";

发送sql语句

// 发送sql 语句 if($conn->query($sql) === TRUE){    echo "新记录添加成功!";
}else {    echo "新记录添加失败,错误信息:" . $conn->error;
}// 关闭连接$conn->close();

通过mysqli删除数据

<?php// 数据库连接基本信息header("Content-type:text/html;Charset=utf8");$servername = "localhost";$username = "root";$password = "";$dbname = "stu_02";$conn = new mysqli($servername,$username,$password,$dbname);

mysqli_set_charset($conn,'utf8'); // 解决乱码问题
// 检查链接if ($conn->connect_error) {    die("连接失败: " . $conn->connect_error);
} 


// 设置sql$sql = "delete from stu_info where lastname = '李小思';";// 发送sql if($conn->query($sql) === TRUE) {    echo "删除成功";
}else {    echo "删除失败,错误信息为:" . $conn->connect_error;
}$conn->close();

通过mysqli 更改数据

<?php
// 数据库连接基本信息
header("Content type:text/html;Charset=utf8");
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "stu_02";
$conn = new mysqli($servername,$username,$password,$dbname);

mysqli_set_charset($conn,'utf8');// 解决乱码问题
// 检查链接
if ($conn->connect_error) {    
   die("连接失败: " . $conn->connect_error);
}
// 设置sql语句 
$sql = "update stu_info set firstname='张小三' where id = 3";
// 发送sql语句 if($conn->query($sql) === TRUE) {   
    echo "修改成功";
}else {    
    echo "修改失败,错误信息:" . $conn->connect_error;
}
// 关闭$conn->close();

通过mysqli 查找数据

<?php    // 1.登录mysql,选择数据库
    $link = @new mysqli("localhost:3306","root","root","test1908");    if($link->connect_error){        echo $link->connect_error;
    }    // 2.$link->query()向mysql发送命令
    
    // 查
    $q = "SELECT * FROM stu";    $res = $link->query($q);    if($res){        // 每次执行只能解析一条数据
        // 1.解析出了关联数组和索引数组的集合
        // while($arr = $res->fetch_array()){
        //     print_r($arr);
        //     echo "<br>";
        // }

        // 2.解析出了索引数组
        // while($arr = $res->fetch_row()){
        //     print_r($arr);
        //     echo "<br>";
        // }

        // 3.解析出了关联数组       √
        while($arr = $res->fetch_assoc()){            print_r($arr);            // echo json_encode($arr);
            echo $arr["sex"];            echo "<br>";
        }        // 4.解析出了对象
        // while($obj = $res->fetch_object()){
        //     print_r($obj);
        //     echo $obj->name;
        //     echo "<br>";
        // }
        
        // echo $arr["age"]
    }else{        echo "select no ok";
    }    // 断开mysql之间的连接
    $link->close();
?>


最新回复 (0)
发新帖