zoukankan      html  css  js  c++  java
  • 【辅导】Task18 更新与插入删除操作 主要知识点

    本任务介绍了4个方面的知识。Task18.1是对参数化查询的回顾也复习,不再讲解,Task18.2-18.4是介绍PHP中实现数据库的修改、插入和删除操作。

    1PHP中数据库CRUD操作的实现

    增加(Create)、读取(Retrieve)、更新(Update)和删除(Delete)

    SQL语句无参数时,通过执行数据库连接对象query()方法来实现,比如SELECT查询。预处理语句也可以执行无参数SQL语句,不绑定参数变量就可以了。

    SQL语句有参数时,可以通过执行预处理语句execute()方法来实现。参数化查询的SELECT语句,UPDATE、INSERT、DELETE语句一般来说都是有参数的。

    2、下拉列表控件的数据绑定

    本任务中,使用地址列表来演示了下拉列表控件的数据绑定方式:

     

    以修改为例,客户信息已经读取到$stmt对象(只有一条数据记录),$address_id表示当前客户记录的地址编号。地址信息已经读取到$addr_list对象中,是结果记录集。

    对下拉列表控件,需要绑定以下几项数据:

    (1)每个option列表项: 可以从$addr_list对象循环读取来绑定:

    <?php while ($row=$addr_list->fetch_assoc()):?>

    <option>

    <?="{$row['address']},{$row['city']},{$row['country']}";?>

    </option>

    <?php endwhile;?>

    (2)需要设定每个选项的value属性值,当用户选择该项时,该值就是表单$_POST['address']的值,对应更新到Customer表的address_id字段。

    <option value="<?="{$row['address_id']}";?>"

      ……

    </option>

    (3)当前列表的默认选中项,其value值应是当前正在修改的客户的address_id字段的值:

     

    3、参数化查询的实现过程

    建立数据库连接对象;

    使用SQL语句建立预处理语句;

    绑定参数变量 i-integer, d-double, s-string, b-blob

    绑定结果变量

    给参数变量赋值(如已经赋值可忽略)

    执行查询

    保存结果

    关闭数据库连接

    4、修改、插入、删除的实现过程

    建立数据库连接对象;

    使用SQL语句建立预处理语句;

    绑定参数变量 i-integer, d-double, s-string, b-blob

    给参数变量赋值(如已经赋值可忽略)

    执行查询。

    关闭数据库连接

    5、关于execute()方法

    注意,excute()方法返回true表示SQL语句执行成功,但并表示一定会对表会有实际的影响,如删除时指定了条件,但这个条件不成立,成功执行了删除语句,但实际上一条记录也没有删除。

    可以通过数据库连接对象或预处理语句对象的affected_rows属性来获取最近一条SQL语句对结果记录集影响的行数。

    excute()方法返回值,经常用来判断SQL语句执行时有没有错,如果有错误,可以通过该对象的error属性来获取SQL语句执行时的错误信息字符串,无错误时error属性值为空串。

    6、会使用header()函数吗?

    在本任务中,多次使用header()函数实现网页转向,如:

    header('Location: Customer.php');

    实际上,header()函数用来发送原生的http头部信息。上面的语句就是发送302转向的状态码。

    下面的语句,显示404错误:

    header("HTTP/1.0 404 Not Found");

    下面的程序,强制浏览器显示一个文件下载的对话框:

    <?php

    header('Content-type: application/pdf');
    header('Content-Disposition: attachment; filename="downloaded.pdf"');
    readfile('original.pdf');
    ?>

    下面的程序,将保存在数据库中的blob类型字段内容(照片)输出到浏览器:

    header('content-type:image/jpeg');

    echo $row["photo"];

    7、课后练习

    有条件的同学,请务必参照课件和视频,练习下对Customer表的增删改查,针对其它表做练习也可以。

  • 相关阅读:
    extjs grid renderer用法
    EventListenerList举例
    SQL语句的执行原理
    WPF操作邮箱,发送邮件
    wpf中DataGrid行色变换
    JS获取浏览器和荧屏分辨率
    将数据库的二进制字节转换成图片
    字符串操作类
    ios推送基于YII第三方组件的类库
    数组操作类
  • 原文地址:https://www.cnblogs.com/whitewin/p/12926765.html
Copyright © 2011-2022 走看看