《PHP+MySQL动态网站开发》课件 第9章 使用PHP操作MySQL_第1页
《PHP+MySQL动态网站开发》课件 第9章 使用PHP操作MySQL_第2页
《PHP+MySQL动态网站开发》课件 第9章 使用PHP操作MySQL_第3页
《PHP+MySQL动态网站开发》课件 第9章 使用PHP操作MySQL_第4页
《PHP+MySQL动态网站开发》课件 第9章 使用PHP操作MySQL_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章使用PHP操作MySQL《PHP+MySQL动态网站开发》学习目标/Target

了解PHP中的数据库扩展,能够说出常用的数据库扩展。

掌握MySQLi扩展的使用方法,能够使用MySQLi扩展操作数据库。

掌握新闻管理系统的实现,能够根据需求实现功能。章节概述/Summary在学习了MySQL的基础知识后,读者还要学习如何使用PHP操作MySQL。本章将对使用PHP操作MySQL的相关内容进行详细讲解。目录/Contents9.19.29.3PHP中常用的数据库扩展初识MySQLi扩展使用MySQLi扩展操作数据库9.4项目实战——新闻管理系统PHP中常用的数据库扩展9.1

先定一个小目标!了解PHP中的数据库扩展,能够说出常用的数据库扩展。9.1PHP中常用的数据库扩展MySQLi扩展是PHP中专门用于与MySQL数据库进行交互的扩展,它是PHP早期版本中的MySQL扩展的增强版,不仅包含所有MySQL扩展的功能函数,还可以使用MySQL新版本中的高级特性,例如,多语言执行和事务的执行,采用预处理方式解决SQL注入问题等。MySQLi扩展PDO扩展PDO提供了一个统一的API,只要修改其中的数据源名称,就可以实现PHP与不同类型数据库服务器之间的交互。PDO扩展解决了PHP早期版本中不同数据库扩展的API互不兼容的问题,提高了程序的可维护性和可移植性。9.1PHP中常用的数据库扩展如果想要使用PHP操作数据库,就需要借助PHP中的数据库扩展。初识MySQLi扩展9.2

先定一个小目标!熟悉MySQLi扩展的开启,能够在配置文件中开启MySQLi扩展。9.2.1开启MySQLi扩展在php.ini中找到“;extension=mysqli”配置项,删除前面的分号“;”即可开启MySQLi扩展。修改后的配置代码如下:extension=mysqli9.2.1开启MySQLi扩展

先定一个小目标!熟悉MySQLi扩展的常用函数,能够说出MySQLi扩展的常用函数。9.2.2MySQLi扩展的常用函数MySQLi扩展内置了用于实现连接数据库、设置客户端字符集等功能的函数。MySQLi扩展的常用函数:函数描述mysqli_connect(string$hostname,string$username,string$password,string$database,int$port,string$socket)连接数据库,连接成功返回数据库连接对象,连接失败返回falsemysqli_connect_error()获取连接时的错误信息,返回带有错误描述的字符串mysqli_select_db(mysqli$mysql,string$database)选择数据库,若成功返回true,失败返回falsemysqli_set_charset(mysqli$mysql,string$charset)设置客户端字符集,若成功返回true,失败返回falsemysqli_query(mysqli$mysql,string$query)执行数据库查询,写操作返回true,读操作返回结果集对象,失败返回falsemysqli_insert_id(mysqli$mysql)获取上一次插入操作产生的idmysqli_affected_rows(mysqli$mysql)获取执行SQL语句所影响的行数mysqli_num_rows(mysqli_result$result)获取结果集中的行数1/29.2.2MySQLi扩展的常用函数函数描述mysqli_fetch_assoc(mysqli_result$result)获取一行结果并以关联数组方式返回mysqli_fetch_row(mysqli_result$result)获取一行结果并以索引数组方式返回mysqli_fetch_all(mysqli_result$result,int$mode)获取所有的结果,并以数组方式返回mysqli_fetch_array(mysqli_result$result,int$mode)从结果集中获取一行结果作为索引数组或关联数组mysqli_free_result(mysqli_result$result)释放结果集mysqli_errno(mysqli$mysql)返回最近函数的错误编号mysqli_error(mysqli$mysql)返回最近函数的错误信息mysqli_report(int$flags)开启或禁用MySQL内部错误报告mysqli_close(mysqli$mysql)关闭数据库连接2/29.2.2MySQLi扩展的常用函数使用MySQLi扩展操作数据库9.3

先定一个小目标!掌握连接数据库的语法,能够在程序中连接数据库。9.3.1连接数据库使用MySQLi扩展操作数据库之前,需要连接数据库。使用mysqli_connect()函数连接数据库的语法格式:语法格式mysqli_connect(string$hostname,//主机名或IP地址string$username,//用户名string$password,//密码string$dbname, //数据库名称int$port, //端口号stringsocket

//socket通信(适用于Linux环境))9.3.1连接数据库创建connect.php,使用mysqli_connect()函数连接数据库:<?php//连接数据库$link=mysqli_connect('localhost','root','123456','mydb','3306');//查看连接结果echo$link?'数据库连接成功':'数据库连接失败';9.3.1连接数据库如果将函数的密码参数修改为“123”,此时的密码是错误的,数据库会连接失败,提示信息:9.3.1连接数据库

先定一个小目标!掌握错误处理的语法,能够处理连接数据库出现的错误。9.3.2错误处理数据库连接失败返回的错误信息可读性比较差,为此,可使用mysqli_connect_error()函数获取连接时的错误提示信息。在connect.php使用mysqli_connect_error()函数获取错误信息:9.3.2错误处理<?php//禁用MySQL内部错误报告mysqli_report(MYSQLI_REPORT_OFF);//连接数据库$link=@mysqli_connect('localhost','root','123','mydb');//输出连接失败时的错误信息if(!$link){exit('mysqliconnectionerror:'.mysqli_connect_error());}

先定一个小目标!掌握设置字符集的语法,能够在程序中设置字符集。9.3.3设置字符集数据库连接成功后,还需要设置字符集,以确保PHP与MySQL使用相同的字符集。使用mysqli_set_charset()函数设置字符集:9.3.3设置字符集语法格式mysqli_set_charset(mysqli$mysql,string$charset)$mysql表示数据库连接对象,$charset是要设置的字符集,设置成功返回true,设置失败返回false。在connect.php中使用mysqli_set_charset()函数设置字符集:if(!mysqli_set_charset($link,'utf8mb4')){exit(mysqli_error($link));}9.3.3设置字符集注意:为了避免中文乱码问题,需要保证PHP脚本文件、Web服务器返回的编码、网页的<meta>标签、PHP访问MySQL使用的字符集是统一的。9.3.3设置字符集

先定一个小目标!掌握添加、更新和删除数据,能够在程序中实现添加、更新和删除数据。9.3.4添加、更新和删除数据MySQLi扩展提供了mysqli_query()函数来执行SQL语句:语法格式mysqli_query(mysqli$mysql,string$query,)$mysql表示数据库连接对象;$query表示要执行的SQL语句。执行写操作成功返回true,失败返回false,执行读操作返回值是结果集对象。9.3.4添加、更新和删除数据1.添加数据在connect.php中实现添加数据操作://添加数据的SQL语句$query='INSERTINTOstudentVALUES(NULL,\'Bob\',20)';//执行添加数据操作$result=mysqli_query($link,$query);if(!$result){exit(mysqli_error($link));}echo'添加数据的id值:'.mysqli_insert_id($link);//获取添加数据的自增id9.3.4添加、更新和删除数据2.更新数据在connect.php中实现更新数据操作://更新数据的SQL语句$query='UPDATEstudentSETage=21WHEREid=5';//执行更新数据操作$result=mysqli_query($link,$query);if(!$result){exit(mysqli_error($link));}//返回结果echomysqli_affected_rows($link);9.3.4添加、更新和删除数据3.删除数据在connect.php中实现删除数据://删除数据的SQL语句$query='DELETEFROMstudentWHEREid>4';//执行删除数据操作$result=mysqli_query($link,$query);if(!$result){exit(mysqli_error($link));}//返回结果echomysqli_affected_rows($link);9.3.4添加、更新和删除数据

先定一个小目标!掌握查询数据,能够处理查询的结果集。9.3.5查询数据使用mysqli_query()函数执行读操作时,返回值是结果集对象,需要对结果集做进一步处理,获取结果集中的数据。使用mysqli_fetch_assoc()函数、mysqli_fetch_row()函数和mysqli_fetch_array()函数都可以实现获取结果集中的一行结果的操作。9.3.5查询数据在connect.php中使用mysqli_fetch_assoc()函数查询student数据表中的所有数据://查询数据的SQL语句$query='SELECT*FROMstudent';//执行查询数据操作$result=mysqli_query($link,$query);if(!$result){exit(mysqli_error($link));}//处理结果集$lists=[];while($row=mysqli_fetch_assoc($result)){$lists[]=$row;}mysqli_free_result($result);//释放结果集资源9.3.5查询数据将查询出来的结果展示在页面中:echo'<table><tr><th>id</th><th>姓名</th><th>年龄</th></tr>';foreach($listsas$val){echo"<tr><td>{$val['id']}</td><td>{$val['name']}</td><td>{$val['age']}</td></tr>";}echo'</table>';9.3.5查询数据如果想要获取所有的结果,通过mysqli_fetch_all()函数实现://获取所有的结果$data=mysqli_fetch_all($result,MYSQLI_ASSOC);//输出结果var_dump($data);9.3.5查询数据$data中存入了一个包含所有行的二维数组,其中每一行记录都是一个数字

先定一个小目标!掌握关闭数据库连接的语法,能够在程序中实现关闭数据库连接。9.3.6关闭数据库连接当不需要使用数据库连接时,需要关闭数据库连接。9.3.6关闭数据库连接语法格式mysqli_close(mysqli$mysql)使用mysqli_close()函数关闭数据库连接:示例代码mysqli_close($link);项目实战——新闻管理系统9.4

先定一个小目标!熟悉新闻管理系统的项目展示,能够说出每个页面要实现的功能。9.4.1项目展示9.4.1项目展示新闻管理系统的主要功能:新闻管理系统添加新闻修改新闻删除新闻新闻列表展示新闻信息展示分页查询9.4.1项目展示新闻列表页面:9.4.1项目展示新闻详情页面:9.4.1项目展示添加新闻页面:9.4.1项目展示修改新闻页面:

先定一个小目标!熟悉新闻管理系统的功能,能够总结每个页面要实现的具体功能。9.4.2功能介绍新闻管理系统的功能介绍如下:①新闻列表页面:新闻列表页面展示新闻的标题、新闻内容、作者名称和发表时间,每条新闻的标题右侧都有“修改”按钮和“删除”按钮。单击“删除”按钮会删除该条新闻,单击“修改”按钮可以修

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论