第6章通过PHP访问MySQL数据库

上传人:s9****2 文档编号:568224676 上传时间:2024-07-23 格式:PPT 页数:42 大小:241.01KB
返回 下载 相关 举报
第6章通过PHP访问MySQL数据库_第1页
第1页 / 共42页
第6章通过PHP访问MySQL数据库_第2页
第2页 / 共42页
第6章通过PHP访问MySQL数据库_第3页
第3页 / 共42页
第6章通过PHP访问MySQL数据库_第4页
第4页 / 共42页
第6章通过PHP访问MySQL数据库_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《第6章通过PHP访问MySQL数据库》由会员分享,可在线阅读,更多相关《第6章通过PHP访问MySQL数据库(42页珍藏版)》请在金锄头文库上搜索。

1、第第6章章 通过通过PHP访问访问MySQL数据库数据库网页设计与编程网页设计与编程1第6章 通过PHP访问MySQL数据库 42-第第6章章 通过通过PHP访问访问MySQL数据库数据库 l登录到登录到MySQL服务器服务器lMySQL的存取权限系统的存取权限系统l常用常用MySQL数据库管理操作数据库管理操作lPHP中的中的MySQL操作操作l数据库程序应用举例数据库程序应用举例 注意:使用本章的联机演示前,需要使用注意:使用本章的联机演示前,需要使用d:xamppmysqlbinmysqladmind:xamppmysqlbinmysqladmin - -urooturoot passw

2、ord sesame password sesame给给MySQLMySQL的的rootroot用户设置口令用户设置口令2第6章 通过PHP访问MySQL数据库 42-本章教学目标本章教学目标l进一步介绍进一步介绍MySQL的一些基本操作及与之的一些基本操作及与之相关的概念相关的概念l将介绍通过将介绍通过PHP来访问来访问MySQL的方法的方法l了解两种客户端程序访问了解两种客户端程序访问MySQL的异同的异同l要求掌握掌握在要求掌握掌握在PHP中对中对MySQL进行操作,进行操作,包括在包括在PHP中数据库的连接、数据的检索、中数据库的连接、数据的检索、创建数据库、删除数据库、向数据库中插创

3、建数据库、删除数据库、向数据库中插入数据等入数据等3第6章 通过PHP访问MySQL数据库 42-登录登录MySQL服务器服务器访问控制概述访问控制概述l作为作为Web数据库,客户端在访问数据库之前需要数据库,客户端在访问数据库之前需要对对MySQL进行连接和对所选用的数据库进行选择进行连接和对所选用的数据库进行选择l过程换意味着所有访问者(或应用程序)在事先过程换意味着所有访问者(或应用程序)在事先需要在需要在MySQL中进行注册和操作权限的分配,并中进行注册和操作权限的分配,并在客户端程序的连接过程中对客户身份进行验证在客户端程序的连接过程中对客户身份进行验证l在每一项对数据库的操作进行之

4、前,由在每一项对数据库的操作进行之前,由MySQL依依据所注册的权限需要对客户端或程序是否具备相据所注册的权限需要对客户端或程序是否具备相应的操作权限进行核查后再决定执行与否应的操作权限进行核查后再决定执行与否l这个过程实际上在所有大型数据库产品的运用中这个过程实际上在所有大型数据库产品的运用中都是存在的,但所表现的形式各有不同都是存在的,但所表现的形式各有不同4第6章 通过PHP访问MySQL数据库 42-登录到登录到MySQL服务器服务器-举例举例l当要访问一个当要访问一个MySQL服务器时,服务器时,无论是通过何种无论是通过何种方式,方式,都无例外地需要在服务器上进行登录或与都无例外地需

5、要在服务器上进行登录或与其建立连接其建立连接lMySQL客户程序一般还要求用户提供连接参数,客户程序一般还要求用户提供连接参数,其中包括:其中包括:需要联接的主机、用户名和口令需要联接的主机、用户名和口令。lc:mysqlbinmysql -u root password sesame上例是使用上例是使用Windows下的下的MySQL客户端程序连接本机上客户端程序连接本机上的的MySQL服务器服务器5第6章 通过PHP访问MySQL数据库 42-登录到登录到MySQL服务器服务器登录指令登录指令lMySQL客户端连接命令的完整语法如下客户端连接命令的完整语法如下所示:所示:lShell my

6、sql -h host_name -u user_name -p your_pas 在在“ ”之间包含了可选的参数之间包含了可选的参数如果命令没有连接参数,如果命令没有连接参数,mysql使用默认值:使用默认值:l默认主机名是默认主机名是localhostl默认用户名:默认用户名:UNIX登录名或登录名或ODBC(Windows)l如果没有如果没有-p选项,则口令为选项,则口令为NULL6第6章 通过PHP访问MySQL数据库 42-登录到登录到MySQL服务器服务器l对一个对一个UNIX或或Liunx系统中的用户系统中的用户guest,下列,下列命令是等价的:命令是等价的:shellmysq

7、l -h localhost -u guestshellmvsq -h localhostshellmvsq -u guestshellmysqll用户安装完之后的第一次登录,通常使用用户安装完之后的第一次登录,通常使用root帐帐号,而此时默认的号,而此时默认的root密码往往是密码往往是“mysql”,建,建议用户更改议用户更改root密码,以保证系统的安全密码,以保证系统的安全7第6章 通过PHP访问MySQL数据库 42-登录到登录到MySQL服务器服务器l对于对于MySQL的一些基本命令可以在登录之的一些基本命令可以在登录之后用后用help命令进行查看,用户将看到如下命令进行查看,用

8、户将看到如下信息:信息:lmysql?8第6章 通过PHP访问MySQL数据库 42-MySQL的存取权限系统的存取权限系统 (一)(一)lMySQL存取权限系统的主要功能是为某个存取权限系统的主要功能是为某个用户从给定主机上连接到用户从给定主机上连接到MySQL服务器提服务器提供登录认证和赋予相应的资源访问权限供登录认证和赋予相应的资源访问权限l同样作为网络应用程序,同样作为网络应用程序,MySQL使用用户使用用户名和口令的方法与名和口令的方法与UINIX或或Windows下网下网络应用程序使用的方式有很多不同之处络应用程序使用的方式有很多不同之处9第6章 通过PHP访问MySQL数据库 4

9、2-MySQL的存取权限系统(二)的存取权限系统(二)lMySQL认证的用户名,认证的用户名,与与UNIX用户名(登录用户名(登录ID)或)或Windows用户名无关用户名无关MySQL用户名最长可以是用户名最长可以是16个字符个字符一般地一般地UNIX用户名限制为用户名限制为8个字符个字符lMySQL口令与口令与UNIX口令没关系:口令没关系:用户登录到一台用户登录到一台UNIX机器的口令与用户在那台机器上存机器的口令与用户在那台机器上存取一个数据库使用的口令之间没有必然的关联取一个数据库使用的口令之间没有必然的关联lMySQL口令使用的加密算法与口令使用的加密算法与UNIX登录口令所登录口

10、令所用的不同用的不同10第6章 通过PHP访问MySQL数据库 42-MySQL的存取权限系统(三)的存取权限系统(三)l在在MySQL中,权限信息用中,权限信息用user、db、host、tables_priv和和columns_priv表存储在表存储在MySQL数据库管理系统中(名为数据库管理系统中(名为mysql的的数据库中)数据库中)lMySQL数据库服务器启动时,需要从这些数据库服务器启动时,需要从这些表中读取权限信息表中读取权限信息11第6章 通过PHP访问MySQL数据库 42-12第6章 通过PHP访问MySQL数据库 42-MySQL的存取权限系统(四)的存取权限系统(四)l

11、如果用户要在如果用户要在MySQL中进行表操作(如对中进行表操作(如对数据库中的表进行增、删、改、查等操作)数据库中的表进行增、删、改、查等操作)l在这些权限设置信息中,必须事先在对相在这些权限设置信息中,必须事先在对相关数据库表的关数据库表的select、insert、update和和delete的权限进行设置的权限进行设置13第6章 通过PHP访问MySQL数据库 42-其他权限的含义其他权限的含义(一一)lINDEX权限允许用户创建或删除索引权限允许用户创建或删除索引lALTER权限允许用户使用权限允许用户使用ALTER TABLE即更改即更改表结构。表结构。lCREATE和和DROP权

12、限允许用户创建新的数据库权限允许用户创建新的数据库和表或删除现存的数据库和表和表或删除现存的数据库和表lGRANT权限允许用户把用户自己拥有的那些权限权限允许用户把用户自己拥有的那些权限授给其他用户。授给其他用户。1lFILE权限给予用户用权限给予用户用LOAD DATA INFILE和和SELECT INTO OUTFILE语句读写服务器上的语句读写服务器上的文件,任何被授予这个权限的用户都能读写文件,任何被授予这个权限的用户都能读写MySQL服务器上能读写的文件服务器上能读写的文件14第6章 通过PHP访问MySQL数据库 42-其他权限的含义(二)其他权限的含义(二)l其余的权限用于管理

13、性操作,它使用其余的权限用于管理性操作,它使用mysqladmin.exe客户端程序加以实施客户端程序加以实施l表表6-2显示了允许用户执行的显示了允许用户执行的mysqladmin命令命令参数与管理性权限的关系。参数与管理性权限的关系。15第6章 通过PHP访问MySQL数据库 42-其他权限的含义(三)其他权限的含义(三)lRELOAD命令告诉服务器再读入授权表命令告诉服务器再读入授权表lREFRESH命令刷新所有表并打开和关闭记命令刷新所有表并打开和关闭记录文件录文件ALTER权限可以用于通过重新命名权限可以用于通过重新命名表来改换权限系统表来改换权限系统lFILE权限可以用在服务器上,

14、将文本文件权限可以用在服务器上,将文本文件中的数据载入数据库表,其内容可以用中的数据载入数据库表,其内容可以用SELECT存取存取lSHUTDOWN权限关闭服务器权限关闭服务器16第6章 通过PHP访问MySQL数据库 42-其他权限的含义(四)其他权限的含义(四)lPROCESS权限,用户可用权限,用户可用PROCESSLlST命命令显示在服务器内执行的进程信息。令显示在服务器内执行的进程信息。lKILL命令可中止服务器进程,每个用户总命令可中止服务器进程,每个用户总是能显示或中止各自的进程,但是用户需是能显示或中止各自的进程,但是用户需要要PROCESS权限来显示或中止其他用户启权限来显示

15、或中止其他用户启动的进程动的进程lProcess权限被用来察看当前执行的查询命权限被用来察看当前执行的查询命令,包括设定或改变口令查询令,包括设定或改变口令查询17第6章 通过PHP访问MySQL数据库 42-其他权限的含义(五)其他权限的含义(五)l对对mysql数据库(数据库(MySQL系统的管理专用数系统的管理专用数据库)的权限设置有据库)的权限设置有可能可能被用来改变口令被用来改变口令和其他存取权限信息和其他存取权限信息l由于密码在数据库中是可见的,只要拥有由于密码在数据库中是可见的,只要拥有了足够的权限,可以将全部的密码删除,了足够的权限,可以将全部的密码删除,这样就可以自动的拥有管

16、理员的权限这样就可以自动的拥有管理员的权限l所以,在授予用户权限时要特别注意这点所以,在授予用户权限时要特别注意这点18第6章 通过PHP访问MySQL数据库 42-其他权限的含义(六)其他权限的含义(六)l另外还有一些是另外还有一些是MySQL不能不能设置的权限,设置的权限,例如:例如:不能明确地设置某个用户不能访问任何资源不能明确地设置某个用户不能访问任何资源不能指定一个用户只有在一个数据库中建立和删不能指定一个用户只有在一个数据库中建立和删除表的权限而没有建立和删除这个数据库的权限除表的权限而没有建立和删除这个数据库的权限19第6章 通过PHP访问MySQL数据库 42-其他权限的含义(

17、七)其他权限的含义(七)l当用户连接到当用户连接到MySQL数据库后,用户的身份就数据库后,用户的身份就会根据主机名和用户名来确认,然后权限系统赋会根据主机名和用户名来确认,然后权限系统赋予用户相应的操作权限予用户相应的操作权限l权限控制要经过以下两个阶段进行权限控制要经过以下两个阶段进行:1.数据库服务器对当前登录用户进行检查,以确定是数据库服务器对当前登录用户进行检查,以确定是否进行连接否进行连接2.用户连接到数据库服务器后,系统会对用户的每一用户连接到数据库服务器后,系统会对用户的每一个请求进行检查,以判断该用户是否具有权限来执个请求进行检查,以判断该用户是否具有权限来执行这个操作。如果

18、可以,那么就执行操作,如果权行这个操作。如果可以,那么就执行操作,如果权限不够,则发出提示信息,并终止该操作限不够,则发出提示信息,并终止该操作 20第6章 通过PHP访问MySQL数据库 42-常用常用MySQL数据库管理操作数据库管理操作 l与与xBase不同的是不同的是MySQL数据库有全面的数据库有全面的安全管理机制安全管理机制lMySQL的安全系统与许多网络操作系统的安全系统与许多网络操作系统(如如UNIX、NetWare、Windows NT)的安全管的安全管理系统有类似之处,如登录管理、资源访理系统有类似之处,如登录管理、资源访问的权限管理等问的权限管理等21第6章 通过PHP访

19、问MySQL数据库 42-添加新用户和授权添加新用户和授权l可以用两种不同的方法增加用户:通过使可以用两种不同的方法增加用户:通过使用用GRANT语句或语句或直接操作直接操作MySQL授权表授权表,一般使用一般使用GRANT语句比较稳妥语句比较稳妥l例例6-2显示出如何使用显示出如何使用mysql客户程序在客户程序在MySQL中加入新用户中加入新用户首先,数据库管理员必须使用首先,数据库管理员必须使用root用户名与用户名与MySQL连接,并且连接,并且root用户必须对用户必须对mysql数据库数据库有有insert权限和权限和reload管理权限管理权限22第6章 通过PHP访问MySQL

20、数据库 42-l用用GRANT语句增加新用户和权限:语句增加新用户和权限:shellmysql -u root password sesamemysql GRANT ALL PRIVILEGES ON *.* TO guestlocalhost IDENTIFIED BY something WITH GRANT OPTION;mysql GRANT ALL PRIVILEGES ON *.* TO guest% IDENTIFIED BY something WITH GRANT OPTION;23第6章 通过PHP访问MySQL数据库 42-添加新用户和授权添加新用户和授权mysql GR

21、ANT RELOAD,PROCESS ON *.* TO adminlocalhost;admin被授予被授予reload和和process管理权限。这些权限允管理权限。这些权限允许许admin用户执行用户执行“mysqladmin reload”,“mysqladmin refresh”,“mysqladmin flush-*”和和“mysqladmin processlist”命令命令这里没有授予这里没有授予admin用户任何与数据库操作有关的权限,用户任何与数据库操作有关的权限,不过必要的话,可以在以后通过另一个不过必要的话,可以在以后通过另一个GRANT语句追语句追加授权加授权24第6

22、章 通过PHP访问MySQL数据库 42-PHP中的中的MySQL操作操作 l而在而在Web的应用中,用户是通过动态网页中的应用中,用户是通过动态网页中的的PHP程序或数据库访问函数程序或数据库访问函数“间接间接”地对地对MySQL服务器进行访问服务器进行访问l 25第6章 通过PHP访问MySQL数据库 42-登录和退出登录和退出MySQL的的PHP函数函数l用来登录用来登录MySQL数据库的数据库的PHP操作函数有两个,操作函数有两个,分别是:分别是:mysql_connect()和和mysql_pconnect()。它们的格式分别为:它们的格式分别为: int mysql_connect

23、(string hostname :port, string username, string password); int mysql_pconnect(string hostname :port, string username,string password);l登录成功后,这两个函数都可以返回一个登录号登录成功后,这两个函数都可以返回一个登录号(link_identifier),如果登录失败,则返回),如果登录失败,则返回false26第6章 通过PHP访问MySQL数据库 42-登录登录MySQL数据库的数据库的PHP函数举例函数举例?$connect=mysql_connect(l

24、ocalhost,root,sesame);echo $connect;?l程序运行的结果是:程序运行的结果是:Resource id #127第6章 通过PHP访问MySQL数据库 42-mysql_pconnect函数函数l使用使用mysql_pconnect开启数据库时,程序开启数据库时,程序会先寻找是否曾经执行过本函数,若执行会先寻找是否曾经执行过本函数,若执行过则传回先前执行时产生的过则传回先前执行时产生的IDl另一个不同的地方是该函数无法使用另一个不同的地方是该函数无法使用 mysql_close()退出退出MySQL28第6章 通过PHP访问MySQL数据库 42-登录和退出登录

25、和退出MySQL的的PHP函数函数l用户可以使用用户可以使用mysql_close()1函数。函数。mysql_close()函数的语法格式如下:函数的语法格式如下: int mysql_close(int link_identifier);l同同mysql_connect()函数一样,如果操作成函数一样,如果操作成功,会返回功,会返回true;否则,会返回;否则,会返回falsel29第6章 通过PHP访问MySQL数据库 42-使用使用PHP函数测试登录和退出函数测试登录和退出MySQLl?$connect=mysql_connect(localhost,root,sesame);echo

26、 $connect.;$close=mysql_close($connect);echo $close?l程序运行的结果是:程序运行的结果是:Resource id #130第6章 通过PHP访问MySQL数据库 42-建立或删除数据库建立或删除数据库 l在在MySQL中可以使用更简便的中可以使用更简便的mysql_create_db()和和mysql_drop_db()来完成此项功能。来完成此项功能。l用用mysql_create_db()可建新数据库,格式为:可建新数据库,格式为: int mysql_create_db(string database name, int link_ide

27、ntifier);l用用mysql_drop_db可以删除数据库,格式为:可以删除数据库,格式为: int mysql_drop_db(string database_name, int link_identifier);31第6章 通过PHP访问MySQL数据库 42-测试增删数据库测试增删数据库PHP语句语句l?$connect=mysql_connect(localhost,root,sesame);$create=mysql_create_db(mytest,$connect);if ($create) print Created success! ”;$drop=mysql_drop

28、_db(mytest,$connect);if($drop) print Droped success! ;?注意:参见注意:参见NETCLASS的相关演示的相关演示32第6章 通过PHP访问MySQL数据库 42-选择数据库的选择数据库的PHP函数函数 l当然我们对数据的操作大部分是围绕着表进行的,当然我们对数据的操作大部分是围绕着表进行的,由于在不同的数据库中可能存有相同表名的表,由于在不同的数据库中可能存有相同表名的表,为了避免混淆,一般在进行表操作之前,需要进为了避免混淆,一般在进行表操作之前,需要进行数据库的选择行数据库的选择l选择数据库的选择数据库的PHP函数是函数是mysql_s

29、elect_db()int mysql_select_db(string database_name, int link_identifier); 33第6章 通过PHP访问MySQL数据库 42-mysql_select_db()应用举例应用举例ll此例仅仅是为了测试此例仅仅是为了测试worksheet数据库是否存在,数据库是否存在,如果存在,显示如果存在,显示“ok”,否则显示,否则显示“Error”l由于由于MySQL支持数据库加锁,如果支持数据库加锁,如果数据库被某个数据库被某个进程锁定进程锁定,其他进程就无法选择或连接该数据库,其他进程就无法选择或连接该数据库34第6章 通过PHP访

30、问MySQL数据库 42-使用使用PHP向向MySQL发送查询发送查询 l标准标准SQL不是程序语言,只是数据库交互式指令。不是程序语言,只是数据库交互式指令。因此因此SQL不得不不得不“寄宿寄宿”于其他程序设计语言来于其他程序设计语言来完成程序性任务完成程序性任务l而而SQL在在PHP中的实现,大部分是通过中的实现,大部分是通过PHP的查的查询函数完成的询函数完成的l针对针对MySQL,PHP提供了两个可以进行提供了两个可以进行SQL查询查询的函数:的函数:mysql_query()和和mysql_db_query()l这两个函数的区别在于,这两个函数的区别在于,mysql_query()需

31、要其需要其他函数来指定数据库而他函数来指定数据库而mysql_db_query()则可以则可以自己指定要使用的数据库自己指定要使用的数据库35第6章 通过PHP访问MySQL数据库 42-mysql_query()函数说明函数说明 int mysql_query(string query, int link_identifier);l本函数送出本函数送出query字串供字串供MySQL做相关的处理或做相关的处理或者执行者执行l如果没有指定如果没有指定 link_identifier参数,则程序会自参数,则程序会自动寻找最近连接的动寻找最近连接的IDl当当query查询字串是查询字串是 UPDA

32、TE、INSERT及及DELETE 时,传回的可能是时,传回的可能是true或者或者falsel当查询的字串是当查询的字串是SELECT则传回新的则传回新的ID值值(查询结查询结果的操作句柄果的操作句柄)l当传回当传回false时,一种情况是执行成功但无传回值,时,一种情况是执行成功但无传回值,另一种情况则是查询的字串有错误另一种情况则是查询的字串有错误36第6章 通过PHP访问MySQL数据库 42-mysql_db_query()函数说明函数说明lint mysql_db_query(string database, string query, int link_identifier);说

33、明:本函数用来送出查询字串说明:本函数用来送出查询字串 (query)到后台的到后台的MySQL数数据库中据库中而可省略的参数而可省略的参数link_identifier若未定义,程序会自动寻找其若未定义,程序会自动寻找其它它mysql_connect()登录后的登录代码。发生错误时会返回登录后的登录代码。发生错误时会返回false,无错误时则传回它的返回代码,无错误时则传回它的返回代码 1l掌握了这两函数,就可以使用掌握了这两函数,就可以使用PHP向数据库中添加、修向数据库中添加、修改和删除数据了改和删除数据了 1 注意:在实际使用中,注意:在实际使用中,mysql_query()、 mys

34、ql_db_query()需要和其他函数搭配使用,单独使用它是没有任何意义需要和其他函数搭配使用,单独使用它是没有任何意义的。的。37第6章 通过PHP访问MySQL数据库 42-使用使用PHP函数读取函数读取MySQL数据数据 l在动态网页设计中,用户往往需要从数据库中取在动态网页设计中,用户往往需要从数据库中取得必要的数据然后在网络上发布得必要的数据然后在网络上发布l一般从数据库中取资料的工作是由一般从数据库中取资料的工作是由CGI程序完成程序完成的,的,PHP也是此类也是此类CGI程序之一程序之一l可以读取可以读取MySQL数据库内数据的数据库内数据的PHP函数有:函数有:mysql_f

35、etch_object()mysql_fetch_array()mysql_fetch_row()mysql_result()l这几个函数都可以读取数据库的数据,但使用方这几个函数都可以读取数据库的数据,但使用方式上还是有很大的区别式上还是有很大的区别38第6章 通过PHP访问MySQL数据库 42-mysql_fetch_array()函数lmysql_fetch_array()将查询结果将查询结果(result)逐个拆分到数组变量中逐个拆分到数组变量中l返回的数组,既可用数组的下标访问,也返回的数组,既可用数组的下标访问,也可用数据表字段名进行访问可用数据表字段名进行访问lmysql_fe

36、tch_array()的格式为:的格式为:array mysql_fetch_array(int result, int result_typ);39第6章 通过PHP访问MySQL数据库 42-mysql_fetch_array()的应用的应用l?mysql_connect(localhost,root,sesame);$result = mysql_db_query(mysql,select * from user);while($row = mysql_fetch_array($result) echo $rowHost.; echo $rowUser.; echo $rowPasswo

37、rd.;?40第6章 通过PHP访问MySQL数据库 42-mysql_fetch_array()的程序说明的程序说明l上例使用了上例使用了while()语句控制循环,只要语句控制循环,只要$result中还有数据,那么中还有数据,那么PHP就会不断地就会不断地把新取得的值赋予数组把新取得的值赋予数组$row,echo语句也语句也就不断地将数据输出就不断地将数据输出lmysql_fetch_array()与与mysql_fetch_row()函数的使函数的使用方法相似几乎一样,都是以数组的形式用方法相似几乎一样,都是以数组的形式读取数据库中的数据,不同的是读取数据库中的数据,不同的是后者后者只能只能使用使用数组下标数组下标来访问数据来访问数据41第6章 通过PHP访问MySQL数据库 42-本章小结本章小结l登录到登录到MySQL服务器服务器lMySQL的存取权限系统的存取权限系统l常用常用MySQL数据库管理操作数据库管理操作lPHP中的中的MySQL操作操作l数据库程序应用举例数据库程序应用举例42第6章 通过PHP访问MySQL数据库 42-

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 幼儿/小学教育 > 幼儿教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号