php 通过mysqli 操作数据库mysql

php mysqli 操作数据库

连接数据库

连接数据库管理系统函数:

$link = new mysqli(host,username,password,dbname);
          参数释义:
               host,mysql的主机名或ip地址
               usernane,mysql用户名
               pasword,mysql密码
               dbname,要操作的数据库名
          返回值:
               当连接成功时返回连接标识符
               当连接失败时返回false

判断是否连接成功

// 检测连接是否成功
if($link->connect_error){
        echo "连接失败,错误:" .  $link->connect_error;
    }

设置字符集:

$link->set_charset("utf8");

查询语句(执行一条sql语句):

$link->query(sql命令);

当然,连接之后需要将连接的数据库关闭。

$link->close();

断开连接
程序执行完毕自动断开,可省略不用

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

首先,连接数据库并且确定数据库连接无误。

$ link = @  new mysqli(host,username,password,dbname);
    if($link->connect_error){
        echo $link->connect_error;
    }

接下来设置sql语句:

$q = "INSERT stu (name,sex,age) VALUES('admin','1',16)";

将设置好的sql语句发送:

$res = $link->query($q);
if($res){
  echo "新记录添加成功!";
  }else{
    echo "新记录添加失败!";
 }

如果存储数据的时候出现乱码,那么可以使用下面的代码来解决:

mysqli_set_charset($link,'utf8'); // 解决乱码问题

完整的demo如下:

<?php
// 登录mysql,选择数据库
$link = @new mysqli("localhost:3306","root","root","test");
 if($link->connect_error){
     echo $link->connect_error;
 }

mysqli_set_charset($link,'utf8'); // 解决乱码问题

// 设置sql语句
$q = "INSERT stu (name,sex,age) VALUES('admin','1',16)";

// 发送sql
$res = $link->query($q);
if($res){
  echo "新记录添加成功!";
  }else{
    echo "新记录添加失败!";
 }
// 关闭
$link->close();
?>

请注意,每个SQL语句必须用分号隔开。

通过mysqli删除数据

除了发送的SQL命令改为删除,其他与插入并没有什么不同。

完整的demo如下:

mysqli_set_charset($link,'utf8'); // 解决乱码问题

完整的demo如下:

<?php
// 登录mysql,选择数据库
$link = @new mysqli("localhost:3306","root","root","test");
 if($link->connect_error){
     echo $link->connect_error;
 }

mysqli_set_charset($link,'utf8'); // 解决乱码问题

// 设置sql语句
$q = $q = "DELETE FROM stu WHERE id=6";

// 发送sql
$res = $link->query($q);
if($res){
  echo "删除数据成功!";
  }else{
    echo "删除数据失败!";
 }
// 关闭
$link->close();
?>

通过mysqli 更改数据

完整的demo如下:

<?php
// 登录mysql,选择数据库
$link = @new mysqli("localhost:3306","root","root","test");
 if($link->connect_error){
     echo $link->connect_error;
 }

mysqli_set_charset($link,'utf8'); // 解决乱码问题

// 设置sql语句
$q = "UPDATE stu SET name='admin' WHERE id=6";

// 发送sql
$res = $link->query($q);
if($res){
  echo "更改数据成功!";
  }else{
    echo "更改数据失败!";
 }
// 关闭
$link->close();
?>

通过mysqli 查询数据

完整的demo如下:

<?php
// 登录mysql,选择数据库
$link = @new mysqli("localhost:3306","root","root","test");
 if($link->connect_error){
     echo $link->connect_error;
 }

mysqli_set_charset($link,'utf8'); // 解决乱码问题

// 设置sql语句
$q = "SELECT * FROM stu";

// 发送sql
$res = $link->query($q);
if($res){
  echo "查询数据成功!";
  }else{
    echo "查询数据失败!";
 }
// 关闭
$link->close();
?>

在上面的demo中,我们使用的sql语句如下:

  $q = "SELECT * FROM stu";

上面的语句可以帮助我们查询全部的数据,我们如果只是想要查询一部分的数据也可以更改一下:

  $q = "SELECT  name,age,sex  FROM stu";

where语句的应用
我们在查询数据的时候可以在原本的条件的基础之上加上where条件,让查找更加的精确,例如:

$q = "SELECT  *  FROM stu" WHERE id > 3;

查询数据的解析

我们使用查询语句时得到的$res是一种资源型数据,需要通过他自身携带的方法来解析,我们以上面查询代码来说明一下,当查询成功之后我们不要提示,来直接解析一下这个数据:

1.数据解析出了关联数组和索引数组的集合

  if($res){
     while($arr = $res->fetch_array()){
            print_r($arr);
            echo "<br>";
        }
    }else{
       echo "查询数据失败!";
    }

2.数据解析出了索引数组

if($res){
while($arr = $res->fetch_row()){
          print_r($arr);
          echo "<br>";
      }
  }else{
     echo "查询数据失败!";
  }

3.数据解析出了关联数组

if($res){
while($arr = $res->fetch_assoc()){
         print_r($arr);
         // echo json_encode($arr);
         echo $arr["sex"];
         echo "<br>";
     }
 }else{
    echo "查询数据失败!";
 }

4.数据解析出了对象

if($res){
while($obj = $res->fetch_object()){
         print_r($obj);
         echo $obj->name;
         echo "<br>";
     }  
     echo $arr["age"]
 }else{
    echo "查询数据失败!";
 }

以上四种方式每次执行返回一条记录的数据,可配合循环多次执行,查询所有数据。第三种方式更为常见,使用的比较多。

常用sql语句总结

在上面的代码中,我们尝试了通过mysqli对mysql数据进行的增删改查操作,其中最为核心的是,sql语句的使用。
下面我们总结一下常用的sql语句语法:
插入记录INSERT:

INSERT table_name (column1, column2, column3,...), VALUES (value1, value2, value3,...)

删除记录DELETE:

DELETE FORM table_name WHERE some_column = some_value

更新记录UPDATE:

UPDATE table_name SET column1=value, column2=value2,... WHERE some_column=some_value

查找记录SELECT:

SELECT  column_name FROM table_name

//如果传入一个*,则表示搜索所有的数据:
SELECT * FROM table_name

//也可以在后面加入指定条件

SELECT * FROM table_name WHERE 条件
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值