♂WhiteWin♂

导航

【辅导】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表的增删改查,针对其它表做练习也可以。

posted on 2020-05-20 22:29  银翼  阅读(110)  评论(0编辑  收藏  举报