收藏 分销(赏)

7PHP访问数据库.ppt

上传人:天**** 文档编号:6978089 上传时间:2024-12-24 格式:PPT 页数:129 大小:2.35MB 下载积分:20 金币
下载 相关 举报
7PHP访问数据库.ppt_第1页
第1页 / 共129页
7PHP访问数据库.ppt_第2页
第2页 / 共129页


点击查看更多>>
资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,PHP,动态网站程序设计,(,第,2,版,),唐四薪 主编,人民邮电出版社,ISBN,:,978-7-115-50524-8 2020,年,3,月,第,7,章,PHP,访问数据库,网站数据库化的好处,将网站数据库化,就是使用,数据库,来管理整个网站。只要更新数据库的内容,网站的内容就会被自动更新。将网站数据库化的好处如下:,可以,自动更新网页,。,加强搜索功能,。,可以实现各种基于数据库的应用。,7.1,访问,MySQL,数据库,PHP,访问,MySQL,PHP,提供了大量的,MySQL,数据库操作内置函数,PHP,访问,MySQL,数据库的三种方法:,mysql,内置函数,mysqli,内置函数,PDO,数据接口层,PHP,访问数据库的步骤,浏览器,Apache,数据库,1,数据库,2,连接数据库,创建结果集,$rowtitle,输出字段到页面,数据库,服务器,连接数据库服务器,访问数据库的步骤,连接数据库服务器,连接数据库,创建结果集,取结果集中的一行,mysql_connect,mysql_select_db,mysql_query,mysql_fetch_assoc,$conn=mysql_connect(localhost,root,111);,mysql_select_db(guestbook,$conn);,第一步,连接数据库,浏览器,数据库,数据库,连接数据库,连接数据库服务器,Apache,第二步,创建结果集,浏览器,数据库,创建结果集,数据库,$result=mysql_query(Select*from lyb,$conn);,连接数据库,连接数据库服务器,Apache,第三步,取出结果集中的一行,浏览器,数据库,连接数据库,创建结果集,$rowtitle,输出字段到页面,数据库,$row=mysql_fetch_assoc($result);,echo$rowtitle;,Apache,页面显示数据表中的数据了,设置字符集,提示,:在连接数据库服务器之后、选择数据库之前一般要设置字符集,conn.php,把连接数据库的代码写在单独的文件中,总结:访问数据库的步骤,建立与,MySQL,服务器的连接;,设置字符集;,选择要操作的数据库,创建结果集,将结果集中的一行记录读入数组中,在网页上输出数组元素的值,7.2.2,创建结果集并输出记录,创建结果集,结果集,:,结果集是内存中的一个表,记录,1,记录,2,记录,3,结果集指针,false,false,连接数据库是和指定的数据库建立联系,而创建结果集是和该数据库中指定的表建立联系,取出结果集中的一行,用,mysql_fetch_row(),取出结果集中的一行到数组中,记录,1,记录,2,记录,3,结果集指针,false,false,Array(0=1 1=,祝大家,4=,女,),注意:该方法有两个作用,:,将结果集指针当前指向的记录保存到数组中,然后将结果集指针下移一条记录,取结果集中一行的方法,mysql_fetch_row(),:将当前记录保存到一个索引数组中。,mysql_fetch_assoc(),:将当前记录保存到一个关联数组中。,mysql_fetch_array(),:将当前记录保存到一个含有索引和关联的混合数组中,mysql_fetch_object(),推荐用,第,2,种,在页面上输出数据,步骤:,创建结果集,用,mysql_fetch_assoc(),取出结果集中的一行到数组中,输出数组中的元素即可,如,echo$rowtitle;,在页面上输出结果集中的数据,$row=mysql_fetch_assoc($result),移动结果集指针的方法,移动到下一条记录,mysql_fetch_assoc($result),移动到指定的记录,mysql_data_seek($result,3);,输出多个字段或多条记录,输出多个字段,输出多条记录,输出第,1,条,输出第,2,条,使用循环语句输出所有记录,循环体,使用循环语句输出所有记录,循环体,使用循环语句输出,n,条记录,方法,1,:使用,for,循环,限定循环次数为,n,;,方法,2,:,Select*from lyb,limit n,,这样结果集中就只有,n,条记录了。,推荐用第二种方法,2.,在页面上输出单个字段,mysql_result(),函数可以返回结果集指针当前指向记录的某个字段值。,语法为:,mysql_result(result,row,field),例如:,echo mysql_result($result,1,author);,输出第,2,条记录的,author,字段的值,然后把结果集指针下移一条记录,5.,返回记录总数,mysql_num_rows(),函数可以返回结果集中的记录总数,例如:,共有,条记录,6.mysql_db_query(),函数,mysql_db_query(),函数可以同时选择数据库和创建结果集,mysql_select_db(guestbook,$conn);$result=mysql_query(Select*from lyb,$conn);,可以用,mysql_db_query(),改写为:,$result=mysql_db_query(guestbook,Select*from lyb,$conn);,释放结果集和关闭数据库连接,释放结果集,mysql_free_result(),mysql_free_result($result);,关闭数据库连接,mysql_close(),mysql_close($conn);,输出记录的应用,制作新闻网站,制作一个网站要制作三个页面,网站首页,栏目首页,内页,输出多个记录集中的记录,输出一个记录集的多条记录,输出一条记录,7.6,新闻网站综合实例,制作新闻网站的首页,输出多个记录集中的记录,网站首页,创建数据库连接,根据栏目名创建相应的结果集,循环输出记录到这个栏目框,关闭记结果集,根据下一个栏目名创建相应的结果集,制作栏目首页,制作栏目首页,输出记录集中的多条记录,栏目首页,连接数据库,根据首页传过来的栏目名创建记录集,输出所有记录到栏目框中(可能还需分页),关闭记录集,制作内页,制作内页,输出单条记录,内页,连接数据库,根据其他页传过来的,ID,值创建记录集(该记录集中只有一条记录),输出该条记录的各个字段到页面合适位置上,关闭记录集,5.2.3,使用,mysql_query,方法添加记录,1.,利用,Insert,语句添加记录,?require(conn.php);,mysql_query(insert into lyb(title,content,author,email,date)values(,大家好,PHP,学习,小浣熊,s,2012-3-3)or die(,执行失败,);echo,新增记录的,id,是,.mysql_insert_id();,提示:执行添加记录不会创建结果集,因此,mysql_query,前不要写,$result=,不要插入自动递增字段的值,返回插入记录的自动递增字段值,5.2.3,使用,mysql_query,方法删除记录,2.,利用,Delete,语句删除记录,本次操作共有,条记录被删除!,可返回影响的记录数,5.2.3,使用,mysql_query,方法更新记录,3.,利用,Update,语句更新记录,133 and ID,记录新闻页面的点击次数,mysql_query(update news set hits=hits+1 where id=.$_GETid.);,mysql_query,方法的总结,mysql_query(),方法,参数为,Select,语句:创建记录集,参数为其他,SQL,语句:执行增、删、改操作,参数为设置字符集命令:设置字符集,网站的结构分析,网站的前台:显示记录,网站的后台:添加、删除、修改记录,添加、删除、修改记录的综合实例,该实例能对数据表中的数据进行显示、添加、删除和修改。程序主要包括管理主界面,添加记录模块、删除记录模块和更新记录模块。,5-6.php,数据管理主界面,addform.php insert.php,添加记录模块,delete.php,删除记录模块,editform.php edit.php,更新记录模块,数据管理主界面,5-6.php,通过超链接传递记录,ID,请注意“删除”超链接:,删除,删除,删除,删除,删除,增、删、改的原理,添加记录,获取表单数据,将记录插入记录集,添加记录的步骤,浏览器,IIS,数据库,连接数据库,数据库,执行插入语句,$title=$_POSTtitle,获取数据,mysql_query(“Insert into”),增、删、改的原理,删除记录,获取记录,ID,根据,ID,执行删除语句,删除记录的步骤,浏览器,IIS,数据库,连接数据库,数据库,$id=$_GETid,获取记录,ID,执行删除语句,mysql_query(“delete from”),确认删除的实现,onclick=return confirm(,确认要删除吗?,),删除,同时删除多条记录,必须是数组,同时删除多条记录的实现,$selectid=$_POSTselected;,if(count($selectid)0)$sel=implode(,$selectid);/,将各个数组元素用“,”,号连接起来,mysql_query(delete From lyb where ID in($sel)or die(,执行失败,);,增、删、改的原理,修改记录,显示记录到表单中 获取表单数据和记录,ID,根据,ID,创建记录集,根据表单数据修改记录,修改记录的步骤,(,第,1,次与数据库通信,),浏览器,数据库,连接数据库,创建结果集,$rowtitle,输出字段到表单,数据库,Apache,修改记录的步骤,(,第,2,次与数据库通信,),浏览器,数据库,连接数据库,数据库,$id=$_GETid,获取,ID,和数据,执行更新语句,mysql_query(update),$title=$_POSTtitle,Apache,总结,添加记录获取表单数据,将记录写入结果集,删除记录获取记录,ID,根据,ID,创建结果集,删除记录,修改记录 显示记录到表单中 获取表单数据和记录,ID,根据,ID,创建结果集,根据表单数据修改记录,查询记录的实现,提供一个表单供用户输入查询关键字,将用户提交的关键字作为条件用,Select,语句进行查询,将查询的结果(返回的记录集)显示在网页中。,查询程序的关键代码,$keyword=trim($_GETkeyword);/,获取输入的关键字,$sel=$_GETsel;,$sql=select*from lyb;,if($keyword ),$sql=$sql.where$sel like%$keyword%;,7.3,分页显示数据,网页中的分页效果,7.3,分页显示数据,第,1,条,第,2,条,第,3,条,第,4,条,第,5,条,第,6,条,第,7,条,第,8,条,第,9,条,第,10,条,第,11,条,第,12,条,第,13,条,第,14,条,第二页,第三页,第四页,第一页,分页技术的实现,在,数据库服务器,实现:通过创建结果集的方式来分页,在,Web,服务器,实现:通过,PHP,循环语句读取结果集中某页范围的记录,在,浏览器端,实现:通过客户端,JavaScript,脚本只显示某页记录对应的,HTML,元素,分页程序实现的步骤,设置每页显示的记录数,获取记录总数,计算总共有多少页,取得要显示第几页的记录,通过超链接传递页码,1.,设置每页显示的记录数,每页显示,5,条记录,$PageSize=5;,2.,获取结果集中的记录总数,两种方法:,1.,通过,mysql_num_rows(),函数返回记录总数,$RecordCount=mysql_num_rows($result);,2.,通过,select,语句中的,count,函数实现:,$result=mysql_query(Select count(*)from lyb,$conn);,$row=mysql_fetch_row($result);,$RecordCount=$row0;,3.,计算总页数,通过,$RecordCount,和,$PageSize,两个变量的值计算,$PageCount=ceil($RecordCount/$PageSize);,返回大于或等于,x,并且最接近,x,的整数,4.,如何显示第,n,页的记录,使用,limit,子句限定显示记录的范围,SELECT*FROM,表名,LIMIT,起始位置,显示记录数量,例如:若页码保存在,$Page,中,要获取第,$Page,页显示的记录,Select*From,表名,Limit($Page-1)*$PageSize,$PageSize,显示第,n,页的记录的程序,5.,通过超链接转到要显示的分页,localhost/php/5-9.php?page=2,if(isset($_GETpage)/,获取到的页码不为空,$Page=$_GETpage;,else,$Page=1;,但普通用户不会知道在,URL,上输入类似,?page=2,之类的参数来访问分页,传递分页链接,定义分页链接,可以定义几个分页链接,供用户点击。,“第一页”链接的代码如下:,echo ,第一页,;,“,上一页”链接的代码如下:,echo ,上一页,;,“,下一页”链接的代码如下:,echo ,下一页,;,“,末页”链接的代码如下:,echo ,末页,;,在,Web,服务器实现分页,特点:结果集包含所有记录,而不是,1,页的记录,然后将结果集的指针指向第,n,页的第,1,条记录,然后用,for,循环循环输出,$PageSize,条记录,通过移动结果集指针进行分页,$result=mysql_query(Select*from lyb,$conn);,/,将指针指向第,$Page,页第,1,条记录,mysql_data_seek,($result,($Page-1)*$PageSize);,for($i=0;$i,mysql_data_seek(result,row),函数的功能是将结果集,result,的指针移动到指定的行数,row,5.4.2,对查询结果进行分页,在获取了用户输入的查询值后,一方面将它传递给,SQL,语句进行查询,另一方面将其保存在分页链接的,URL,参数(或表单隐藏域)中,5.4.3,将分页程序写成函数,分页函数的输入参数有:,记录总数,$RecordCount,,,每页显示的记录数,$PageSize,,,当前显示哪一页,$Page,;,当前页的,url,;,查询关键字,$keyword,(如没有查询关键字,可不设置,$keyword,),2.,调用分页函数实现分页,page($RecordCount,$PageSize,$Page,$url,$keyword);,5.4.4,可设置每页显示记录数的分页程序,设置,pagesize,属性为用户设置的分页数,将用户设置的分页数写入,Session,变量中,使刷新页面不会丢失,自定义每页记录数的分页程序,7.4 mysqli,扩展函数的使用,mysqli,扩展函数的使用,一种新的访问,mysql,数据库的函数库,mysqli,被封装到一个类中,它是一种面向对象的技术,其中,i,表示改进(,improvement,),其执行速度更快,要使用,mysqli,,需在,php.ini,中进行配置:,;extension=php_mysqli.dll,去掉前面的注释符(,;,),使用,mysqli,函数访问数据库的步骤,与,mysql,函数非常类似,也分为,4,步,连接数据库,创建结果集,取出结果集中的一行到数组中,输出数组元素到页面,5.5.1,连接,mysql,数据库,1.,使用,mysqli_connect(),函数,mysqli_connect(),函数用来连接,MySQL,数据库,语法如下:,mysqli,对象名,=mysqli_connect(,数据库服务器,用户名,密码,数据库名,),例如:,$conn=mysqli_connect(localhost,root,111,guestbook);,5.5.1,连接,mysql,数据库,2.,声明,mysqli,对象,$conn=new mysqli(localhost,root,111,guestbook);,也可写成,$conn=new mysqli();,$conn-connect(localhost,root,111);,$conn-select_db(guestbook);,对象名,-,方法名,-,是成员运算符,表,5-1 mysqli,类中的成员方法,方法名,功能,connect(),打开一个新的连接到,MySQL,数据库服务器,select_db(),选择当前数据库,set_charset(),设置客户端的默认字符集,close(),关闭先前打开的连接,query(),执行,SQL,语句,并返回结果集或不返回,multi_query(),同时执行多个查询语句,store_result(),在执行多查询语句时,获取当前结果集,next_result(),在执行多查询语句时,获取当前结果集的下一个结果集,more_results(),从多查询语句中检查是否有任何更多的查询结果集,5.5.2,执行,SQL,语句创建结果集,(,1,),mysqli_query(),函数的语法如下:,结果集,=mysqli_query(,连接对象,SQL,语句,),$result=mysqli_query($conn,select*from lyb);,(,2,),mysqli,对象的,query(),函数的基本语法和示例如下:,对象名,-query(SQL,语句,),$result=$conn-query(select*from lyb);,5.5.3,从结果集中获取数据,将指针指向的当前记录保存到数组,$row,中,并使结果集指针指向下一条记录。,$row=$result-fetch_assoc();,完整程序:显示数据表在网页上,5-17.php,表,5-2 mysqli_result,类中的成员方法,方法名,功能,fetch_row(),以索引数组的形式返回结果集中当前指向的记录,fetch_assoc(),以关联数组的形式返回结果集中当前指向的记录,fetch_array(),以索引数组和关联数组的形式返回结果集中当前指向的记录,fetch_object(),以对象的形式返回结果集中当前指向的记录,data_seek(n),将结果集指针指向第,n,条记录,fetch_field(),从结果集中获得某一字段的信息,fetch_fields(),从结果集中获得全部字段的信息,field_seek(),设置结果集中字段的偏移位置,close(),关闭结果集,返回结果集中记录总数,num_rows,是,mysqli_result,类中的一个成员属性:,记录总数,num_rows?,提示:如果要判断结果集不为空,只能使用,if($result-num_rows0),来判断,而不能使用,if($result),来判断,5.5.4,同时执行多条,SQL,语句,有时可能需要同时执行多条,SQL,语句,比如要在页面上创建两个结果集,5.5.4,同时执行多条,SQL,语句,可以,使用,multi_query(),函数同时执行多条,SQL,语句,,创建两个结果集,。,如果执行的是,Select,语句,就可以使用,store_result(),方法将当前结果集取回到客户端,而用,next_result(),方法可转到下一个结果集。,5.6,新闻网站综合实例,图,5-32,新闻网站的结构及其对应页面,新闻网站,栏目,1,栏目,2,栏目,n,新闻,1,新闻,2,新闻,3,新闻,4,新闻,12,新闻,13,首页,栏目首页,新闻页,数据库设计,-news,表结构,字段名,字段含义,数据类型,ID,新闻的编号,int,,自动递增,主键,title,新闻标题,varchar,content,新闻内容,TEXT,BigClassName,新闻所属的大类名,varchar,SmallClassName,新闻所属的小类名(可不指定),varchar,imagenum,该条新闻中含的图片数,int,firstImageName,新闻中第一张图片的文件名,varchar,user,新闻发布者,varchar,infotime,新闻的发布日期,datetime,hits,该条新闻的点击次数,int,ok,是否将该新闻作为图片新闻显示(该新闻中必须含有图片),tinyint,网站的后台页面,连接数据库文件,conn.php,采用,mysqli,函数连接数据库,connect(localhost,root,111);,$conn-select_db(test);,$conn-query(set names gb2312);?,创建每个栏目的结果集,$result=$conn-query(select*from news where Bigclassname=,通知公告,order by ID desc limit 6);,创建通知公告栏目的结果集,填充结果集中记录到栏目框,通知公告,?,for($i=0;$ifetch_assoc();?,close();,新闻版块最终效果图,制作动态图片轮显效果,1.Pixviewer.swf,文件的原理,var pics=uppic/1.gif|uppic/2.gif|uppic/3.gif|uppic/4.gif|uppic/5.gif,var links=onews.php?id=88|onews.php?id=87|onews.php?id=86|onews.php?id=8|onews.php?id=7,var texts=,爱我雁城、爱我师院,|,国培计划,|,青春舞动,|,长春花志愿者协会,|,朝花夕拾,似水流年,5.6.3,制作动态图片轮显效果,Do while not rs.Eof%,pics+=uppic/,依次添加每幅图片的,URL,地址,links+=onews.asp?id=,texts+=,%/,如果不是最后一条记录,If rs.AbsolutePosition pics+=|;links+=|;texts+=|;%end if,rs.MoveNext,Loop,“,上一条”、“下一条”新闻链接的制作,“,上一条”链接主要是要找到上一条新闻的,id,值。不能通过将本条新闻的,id,值减,1,实现,(,可能是其他栏目的新闻,),应该通过一个查询语句,找到在同一栏目(,bigclassname,)中所有,id,值比该新闻的,id,值小的记录,再对这些记录进行逆序排列,取其中,id,值最大的一条,5.6.6 FCKeditor,的使用,FCKeditor,是一个在线编辑器,可以像,DW,的设计视图一样对新闻内容中的文字和图片进行可视化排版,图,5-37 FCKeditor,的目录结构,FCKeditor,的使用步骤,1.,调用,fckeditor,编辑器,2.,配置,fckeditor,编辑器的文件上传功能,3.,配置对上传文件进行重命名,4.,解决文件上传功能的安全性问题,1.,调用,fckeditor,编辑器,将,FCKeditor,编辑器嵌入到表单中,替换为:,BasePath=fckeditor/;$oFCKeditor-Width=95%;/,设置显示宽度,$oFCKeditor-Height=400px;/,设置显示高度,$oFCKeditor-Value,=$rowcontent;,/,设置编辑器的值,将显示在编辑器中,$oFCKeditor-Create();/,创建编辑器,?,2.,配置,fckeditor,编辑器的文件上传功能,FCKeditor,提供了文件浏览和文件快速上传功能,打开,fckeditoreditorfilemanagerconnectorsphp,目录中的,config,文件,找到如下代码:,$ConfigEnabled=true;,$ConfigUserFilesPath=upfiles/;/,定义上传目录,再打开,fckeditor,根目录下的,fckeditor.js,,确保以下两行的值为,php,:,var _FileBrowserLanguage=php;,var _QuickUploadLanguage=php;,3.,配置对上传文件进行重命名,找到,editorfilemanagerconnectorsphp,目录下的,io.php,文件,将函数名为,SanitizeFolderName,的函数代码修改如下:,function SanitizeFileName($sNewFileName),$arr=explode(.,$sNewFileName);,$ext=array_pop($arr);/,第一个数组元素保存了,.,前的文件名。,$filename=date(Ymd_His_).rand(1000,9999).$ext;,return$filename;,4.,解决文件上传功能的安全性问题,假设网站攻击者猜测到了文件上传程序的路径,则他可以通过输入,url,直接访问该程序,以上传文件,为此,需要判断上传文件者是否是登录成功的用户,这可以通过,Session,变量判断,$ConfigEnabled=isset($_SESSIONadmin);,7.6,数据库接口层,PDO,7.6,数据库接口层,PDO,PDO,(,PHP Data Object,)是为,PHP,访问数据库定义的一个轻量级的、一致性的数据库接口,提供了一个数据库访问抽象层,作用是统一各种数据库的访问接口,PDO,是未来,PHP,在数据库处理方面的主要发展方向,数据库接口层,PDO,的位置,PHP,应用程序,数据库接口层,PDO,Oracle,MySQL,PDO_OCI,PDO_MYSQL,PDO_ODBC,ODBC,ADODB,SQL Server,Access,5.7.1 PDO,的安装,打开,PHP,的配置文件,php.ini,,在,Dynamic Extensions,一节中,找到:,;extension=php_pdo.dll,去掉,;,号即可,接下来,还需要激活一种或多种,PDO,驱动程序,添加下面的一行或多行即可。,extension=php_pdo_mysql.dllextension=php_pdo_mssql.dllextension=php_pdo_oci.dllextension=php_pdo_odbc.dll,查看,PDO,是否安装成功,echo phpinfo();,5.7.2,创建,PDO,对象连接数据库,创建,PDO,对象:,对象名,=new PDO(string DSN,string username,string password,array driver_options);,例如:,$dsn=mysql:host=localhost;dbname=guestbook;,$db=new PDO($dsn,root,111);,参数,1,参数,2,参数,3,PDO,对象,使用,PDO,连接数据库,(conn.php),query(set names gb2312);/,设置字符集,?,PDO,对象常用的成员方法,当,PDO,对象创建成功后(数据库连接成功),就可以使用该对象的方法了,方法名,描 述,query(),执行一条有结果集返回的,SQL,语句,并返回一个结果集,PDOStatement,对象,exec(),执行一条,SQL,语句,并返回所影响的记录数,lastInsertId(),获取最近一条插入到表中记录的自增,id,值,prepare(),负责准备要执行的,SQL,语句,用于执行存储过程等,调用,PDO,对象的方法可以使用“,对象名,-,方法名,”的形式,5.7.3,使用,query(),方法执行查询,使用,query(),方法可以执行一条,select,查询语句,并返回一个结果集。例如:,$result=$db-query(select*from news limit 20);,也可使用,query(),方法来设置字符集。例如:,$db-query(set names gb2312);,PDOStatement,类中常用的成员方法,使用,PDO,对象的,query(),方法执行,Select,语句后会得到一个结果集对象,PDOStatement,方法名,描述,fetch(),以数组或对象的形式返回当前指针指向的记录,并将结果集指针移至下一行,当到达结果集末尾时返回,False,fetchAll(),返回结果集中所有的行,并赋给返回的二维数组,指针将指向结果集末尾,fetchColumn(),返回结果集中下一行某个列的值,setFetchMode(),设置,fetch(),或,fetchAll(),方法返回结果的模式,如关联数组、索引数组、混合数组、对象等。,rowCount(),返回结果集中的记录总数,仅对,query(),和,prepare(),方法有效,columnCount(),在结果集中返回列的总数,bindColumn(),将一个列和一个指定的变量名绑定(必须设置,fetch,方法为,FETCH_BOTH,),PDO,访问数据库的步骤,PDO,访问数据库和,mysql,函数访问数据库的步骤基本上是一致的,即:,连接数据库;,设置字符集;,创建结果集;,读取一条记录到数组;,将数组元素显示在页面上。,在页面上输出记录,query(set names gb2312);,$result=$db-query(select*from lyb);/,执行查询创建结果集,$result-setFetchMode(PDO:FETCH_ASSOC);,while($row=$result-fetch()/,读取一条记录到数组,$row,中,?,共有,rowCount()?,行,5.7.4,使用,exec(),方法执行增、删、改命令,exec(update lyb set content=,用,PDO,修改记录,where author=,蓉蓉,);,?,共有,行记录被修改,5.7.5,使用,prepare(),方法执行预处理语句,预处理语句的作用是:编译一次,可以多次执行,优点:,在执行重复的单个查询时快于直接使用,query(),或,exec(),方法,可以有效防止,SQL,注入(因为,SQL,语句是固定的,不需接受用户输入的参数值),执行预处理语句的过程,(,1,)在,SQL,语句中添加占位符,,PDO,支持两种占位符:即问号占位符和命名参数占位符,$sql=insert into lyb(title,content,author)values(?,?,?);/?,号占位符,$sql=insert into lyb(title,content,author)values(:title,:content,:author);,(,2,)使用,prepare(),方法准备执行预处理语句,$stmt=$db-prepare($sql);,(,3,)绑定参数,$stmt-execute();,示例,例,5.3,使用预处理语句插入记录的示例程序,例,5.4,使用预处理语句根据关键词查询的示例程序,5.8,用,PDO,制作留言板实例,显示留言的代码,query(select*from lyb order by ID desc);,echo,共有,.$result-rowCount().,条留言,;?,rowCount()0),while($row=$result-fetch(1)?,.gif style=float:left;/,作者:,内容:,验证用户登录的主要代码,query($sql);,if($result-rowCount()=0)/,如果数据表中查不到对应的记录,unset($_SESSIONadmin);,echo alert(,您输入的用户名或密码不正确!,);history.go(-1);,exit();,else,$row=$result-fetch(1);,$_SESSIONadmin=$rowuser;/,将用户名保存到,Session,中,echo location.href=./5-6.php;?,习题,11.PHP,哪个函数用于向,MySQL,数据库发送,SQL,语句,?,A.mysql_select_dbB.mysql_connect,C.mysql_queryD.mysql_fetch_field,2.PHP,连接上,MySQL,之后,下列哪个函数配合循环可以得到指定表中的多条记录,?,(),A.mysql_fetch_rowB.mysql_select_db,C.mysql_query D.mysql_data_seek,3.mysql_query(set names gb2312);,该行代码一般写在哪里最合适,?,(),A.,创建结果集之前,B.,创建结果集之后,C.,选择数据库之前,D.,连接数据库服务器之前,习题,4.,下列哪个函数可以将结果集的指针移动到指定的位置,A.mysql_fetch_rowB.mysql_fetch_assoc,C.mysql_queryD.mysql_data_seek,5.PHP,连接,mysql,数据库的连接函数,mysql_connect,的第三个参数是:(),A.,主机名,B.,数据库密码,C.,数据库用户名,D.,报错信息,6.mysql_affected_rows(),函数对下列哪个操作没有影响(),A.selectB.deleteC.updateD.insert,习题,7.mysql_insert_id(),函数的作用是,A.,返回下一次插入记录的,id,值,B.,返回刚插入记录的自动增长的,id,值,C.,查看一共做过多少次,insert,操作,D.,查看一共有多少条记录,8.mysqli,中返回结果集中记录总数的函数是(),A.fetch_rowB.fetch_assocC.num_rowsD.field_count,9.,如果在,PHP,中使用,Oracle,数据库作为数据库服务器,应该在,PDO,中加载下面哪个驱动程序,A.PDO_DBLIBB.PDO_MYSQLC.PDO_OCID.PDO_ORACLE,习题,10.PDO,中要设置返回的结果集为关联数组形式,需使用:(),A.fetch_rowB.fetch_assocC.fetch()D.fetch(2),11.,如果在,PDO,中要执行已准备好的预处理语句,应使用下列哪个方法(),A.query()B.execute()C.exec()D.fetch(),12.,使用,Select,语句查询数据时,要设置返回的行数可使用,子句。,13,使用,mysql_query(),函数发送,SELECT,语句时,执行成功将返回一个,,若执行查询失败则返回,。如果执行非,select,语句,执行成功时返回,,出错时返回,。,习题,14.,在,mysqli,函数库中,从结果集中取出一行并返回一个关联数组的函数是,,返回一个索引数组的函数是,,返回一个混合数组的函数是,。,15.,在,mysqli,中,用来同时执行多个查询语句的函数是,。,16.,为了避免访问,MySQL,数据库时出现乱码现象,应在数据库连接文件中添加什么语句?,17.,在,MySQL,数据库中,,varchar,和,char,两种数据类型
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服