zoukankan      html  css  js  c++  java
  • php mysqli操作数据库

    链接数据库

    在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();
     ?>
    View Code

    通过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();
    ?>
    View Code

    通过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();
    ?>
  • 相关阅读:
    document.getElementById("mytxt").style.left=""style.left在IE的FF中注意
    asp.net 用户控件中 使用相对路径的解决方法 图片路径问题(用户控件、图片路径) ,ResolveUrl
    探索 Block (一) (手把手讲解Block 底层实现原理)
    iOS 多线程开发 (概念与API简介)
    iOS 性能小点
    iOS runtime (二)(runtime学习之AutoCoding源码分析)
    探索 NSRunLoop (二)(NSRunLoop 自己动手实现SimpleRunLoop)
    iOS NSNotificationCenter (自己实现一个通知中心XMCNotificationCenter)
    iOS runtime (三)(runtime学习之YYModel源码分析)
    iOS runtime(一)(runtime 分析理解)
  • 原文地址:https://www.cnblogs.com/yad123/p/11490881.html
Copyright © 2011-2022 走看看