14.2 执行一条语句

本节知识点梳理:

1 执行DML增删改语句,返回布尔值,
 执行DQL查询语句,成功返回mysqli_result 结果集对象 失败返回false

2 获取结果集的四种方式 fetch_assoc();fetch_row();fetch_array();fetch_object();

3 复用结果集,把指针调回第一行数据 $link->data_seek(0);

4 判断DML语句是否成功,返回受影响的行数大于0就是成功了。$link->affected_rows>0 //是属性 affected [əˈfektɪd] 单词本意 受影响的

5 获取刚刚入库数据的主键ID值 $link->insert_id;
 

 

一  执行DQL语句

$sql = 'select * from bbs_category';
$result = $link->query($sql);
echo '<pre>';
//1 返回关联数组(推荐第一种
while ($row = $result->fetch_assoc()) {
    var_dump($row['name']);
}
//2 返回索引数组
$result->data_seek(0);//把指针移动到第一行
while ($row = $result->fetch_row()) {
    var_dump($row[2]);
}
//3 返回对象 (内置标准类)
$result->data_seek(0);//把指针移动到第一行
while ($row = $result->fetch_object()){
    var_dump($row);
    echo '名称是:'.$row->name.'<br>';//访问对象成员
}
//4 返回索引+关联数组
$result->data_seek(0);//把指针移动到第一行
while ($row = $result->fetch_array()){
    var_dump($row);
}
//以上四个方法返回值都一样,如果结果集中没有值了,就返回NULL //NULL转换为布尔为false 所以循环的条件就是:当$row为false时结束循环

 

二 执行DML语句

$sql = 'insert into bbs_category (name,e_name) values("出国","chuguo")';//增加sql
$sql = 'update bbs_category set name="张飞",e_name = "zhangfei" where id=11';//跟新sql
$sql = 'delect from bbs_category where id = 10';//删除SQL

//判断sql是否执行成功
if ($link->query($sql)){
    echo '执行成功';
} else {
    echo '<br/>执行失败,出错SQL:'.$sql;
    echo '<br/>失败的原因:'.$link->error;
}
//判断一下是否真正的影响我们表
if($link->affected_rows > 0){
    echo '<br> 对表,真正进行改变';
}else{
    echo '<br> 没有对表造成任何影响';
}
//获取刚刚插入的自增id
echo $link->insert_id;

 

三 操作事务

    //1. 编写sql
    $sql1 = "update `account` SET money = money - 1 WHERE id = 100";
    $sql2 = "update `account` SET money = money + 1 WHERE id = 200";

    //2. 开始事务
    $link->autocommit(false);//关闭自动提交 改为手动提交

    $res1 = $link->query($sql1);
    $res2 = $link->query($sql2);

    if($res1 && $res2){
        
        echo '<br> sql语句执行成功, 正式提交';
        $link->commit();

    }else{
        echo '<br> sql语句有执行失败的, 回滚';
        $link->rollback();
    }

 

posted @ 2020-12-24 20:38  棉花糖88  阅读(60)  评论(0)    收藏  举报