友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
富士康小说网 返回本书目录 加入书签 我的书架 我的书签 TXT全本下载 『收藏到我的浏览器』

php程序设计简明教程(DOC格式)-第9部分

快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!



作用是对用户发出的命令进行语法检查,检查无误,向服务器提交这些命令请求,接受和向用户返回服务器执行 

的结果反馈信息;检查中若发现用户发出的命令不合法,则拒绝向服务器提交命令,同时返回出错信息。  

mysql。exe 是在MS…DOS 或命令提示符下使用的一种客户端工具,通过命令的方式操纵服务器。  



                           PHP 讲义    第  58  页  共  90  页  


…………………………………………………………Page 59……………………………………………………………

                                       



图  MySQL数据库管理系统中的C/S结构  



注意:mysql。exe 可以安装在远程主机上,不一定必须和服务程序在一起。  

以下说明的前提:安装了MySQL,启动了服务程序。若这部分工作没有做,参考第一章第三节实验中有关内容 

现行完成准备工作。  

 (1)登录和注销  

登录:通过客户端程序mysql。exe 与服务器程序建立信任连接。  

建立连接时,需要提供客户机名,用户名,密码等参数,经服务器验证通过后,会返回成功建立连接的信息,表 

明连接成功。  

  

启动客户端程序mysql。exe:在命令提示符或MS…DOS 下,进入d:mysqlbin,键入命令mysql 回车。  

若出现类似如下结果:  

Wele to the MySQL monitor。    mands end with ; or g。  

Your MySQL connection id is 26 to server version: 3。23。43  

Type 'help;' or 'h' for help。 Type 'c' to clear the buffer。  

mysql》  

则表明连接成功。  

mysql 命令的完整形式是:  

mysql –h servername –u username –p  

参数说明:  

…h    指明主机,省略此参数,则默认为  localhost  

localhost,MySQL 服务器,在服务器看来,它所在的机器就是localhost,即本地机。  

…u    指明用户名(账号)  

…p    使用密码  

上面键入的命令mysql 后面不带任何参数,这是因为MySQL 安装完毕后,系统数据库mysql 中的权限表user 

中,存在默认的空帐号、无密码的超级用户,因此可以从远程主机使用mysql。exe 匿名访问服务器主机。  

  

注销:即断开当前与服务器的连接,键入exit 回车即可。  

  

注意:  

“命令+参数;”是命令语句行的一般形式。  

在mysql。exe 环境下,使用的命令不区分大小写。  

命令的末尾必须带语句结束符——分号,以便让mysql。exe 正确区分、解释、执行一个完整的语句。  

  

 (2 )数据库操作  

〃Y  创建数据库  

  基本句法:CREATE DATABASE db_name;  

  db_name 是要创建的数据库的名字。  

  该语句执行成功后,会在服务器的 MySQL 数据目录(即 MySQL 安装目录下的data  目录)下面创建一个名 

  为db_name 的目录。    

                                     PHP 讲义    第  59  页  共  90  页  


…………………………………………………………Page 60……………………………………………………………

〃Y  查看有哪些数据库  

  基本句法:SHOW DATABASES;  

〃Y  打开数据库(选定数据库)  

  基本句法:USE db_name;  

  若要对表进行查询,修改,删除等操作,必须先打开数据库。  

〃Y  删除数据库  

  基本句法:DROP DATABASE 'IF EXISTS' db_name;  

  DROP DATABASE 删除数据库中的所有表和数据库。要小心地使用这个命令。  

  DROP DATABASE 返回从数据库目录被删除的文件的数目。通常,这3 倍于表的数量,因为每张表对应于一 

  个“。myd”文件、一个“。myi”文件和一个“。frm”文件。    



    文件            作用    



    tbl_name。frm    表定义(表格)文件  



    tbl_name。MYD    数据文件  



    tbl_name。MYI    索引文件  



 (3)表操作  

〃Y  创建表  

  基本句法:CREATE TABLE table_name(列1 定义,列2 定义,…,列n 定义);  

〃Y  查看有哪些表  

  基本句法:SHOW TABLES;  

〃Y  查看表结构  

  DESCRIBE table_name;  

〃Y  查看表中数据  

  SELECT  列FROM table_name 'WhERE  条件子句'    'GROUP  分组子句'    'ORDER  条件子句';  

〃Y  修改表中数据  

  UPDATE table_name SET  列=新值  'WhERE  条件子句  

〃Y  删除表中数据  

  DELETE FROM table_name 'WhERE  条件子句  

 (3)权限操作  

进行权限操作的帐户必须有进行此类操作的权限。  

  

GRANT  权限列表  ON  db_name。  table_name  TO  〃username〃@  〃host〃  'IDENTIFIED  BY  〃password〃'    

'WITH GRANT OPTION ';  



MySQL 默认的超级用户帐号有root、空,且密码都为空。这使得别有用心的人很容易从网络上用mysql。exe 连 

接进入,进行破坏活动。  

为提高安全性,应在安装完后,迅速更改帐号密码或权限等。  

每次更改完毕,必须使用flush privileges ;语句通知服务器启用最新更改的帐号的权限验证用户。  

  

给用户 username  (若不存在就新创建一个)从主机host                 以密码 password  访问数据库 db_name       中的表 

table_name 的权限(ALL PRIVILEGES 、  SELECT 、UPDATE、DELETE、DROP、CREATE、ALTER 、FILE、 

GRANT 等)。  

赋予ALL  PRIVILEGES 权限的用户,在其作用域(如某数据库之某表:db_name。table_name )内,是超级用 

户。  

权限列表中,权限之间用逗号分隔。  

可用符号“*”通配db_name 或table_name,表示所有数据库或所有表。  

可用符号“%”通配host,表示除本地机(localhost,服务器所在机器)外的所有主机。  

如:  

GRANT SELECT ; INSERT ; UPDATE ; DELETE ON ‘test‘。 * TO 〃aaa〃@〃%〃 IDENTIFIED BY 〃aaa〃;  

FLUSH PRIVILEGES ;  



                                  PHP 讲义    第  60  页  共  90  页  


…………………………………………………………Page 61……………………………………………………………

上两句的意思:授予用户aaa 对数据库test 内所有表的SELECT ; INSERT ; UPDATE ; DELETE 权限,允许他 

使用密码aaa,能从本地机localhost 以外的所有主机登录服务器。  

GRANT SELECT ; INSERT ; UPDATE ; DELETE ON ‘test‘。 * TO 〃aaa〃@〃localhost〃 IDENTIFIED BY 〃aaa〃;  

FLUSH PRIVILEGES ;  

上两句的意思:授予用户aaa 对数据库test 内所有表的SELECT ; INSERT ; UPDATE ; DELETE 权限,允许他 

使用密码aaa,只能从本地机localhost 登录服务器。  

  

SET PASSWORD FOR 〃username〃@ 〃host〃 = PASSWORD(“password”)      



以加密形式,更改用户username 的密码  

  

REVOKE ALL PRIVILEGES ON * 。 * FROM 〃username〃@ 〃host〃;  



收回用户username 从主机host 访问服务器上所有数据库中所有表的所有权限。  

  

FLUSH PRIVILEGES;  

刷新权限列表,通知服务器,启用最新权限,达到使更改后的权限起作用的目的。  



4。MySQL 的图形化客户端工具软件  



为方便程序员或数据库系统管理员(DBA)对 MySQL  的操作,可采用一些图形化客户端工具软件。常用的有 

phpMyAdmin、EMSMySQLManager 等。二者使用方法大同小异,这里只介绍phpMyAdmin。  

phpMyAdmin 是一款使用PHP 语言编制的基于Web 使用的MySQL 客户端工具软件。它功能比较丰富,在广大 

MySQL 爱好者中得到了普遍赞誉。  

安装  

该软件安装包在教学网站提供下载。  

将软件包解压,放到服务器的documentroot 下,如果你设置的默认文档为index。php,则键入http://服务器地址 

/phpMyAdmin 所在目录,回车即可出现phpMyAdmin 的用户登录界面。  



                                

如果初次安装好MySQL,可采用默认超级用户的帐号和密码登录:  

在用户名中输入帐号(如root),在密码框中输入密码(空,什么也不输入),回车或单击确定按钮,就会进入系 

统。  

进入系统后,在Language 下拉框中选择适合中国人的系统显示所用的字符集:Chinese Simplified(zh),然后就 

会出现中文界面:  



                                     PHP 讲义    第  61  页  共  90  页  


…………………………………………………………Page 62……………………………………………………………

                                                                   



单击左边的主目录,界面同上,可完成一些系统级操作,如权限管理,数据库管理,导出数据,更改密码,重新 

登录(登出)等。  

左边主目录下边的数据库下拉框,提供了当前用户所能使用的全部数据库,可选择后进行相关操作。  

具体操作,根据中文界面提示,自行学习掌握,这里不再描述。  



第二节  用PHP 操纵MySQL  



前面我们介绍了通过客户端工具,如mysql。exe 或phpMyAdmin,这些都是系统管理员或者程序员使用的,方便 

他们管理数据库或开发工作。但是,在应用系统中,对于普通用户,基于安全的考虑,我们不能允许他们这么做。 

一般的做法是通过编制程序,让用户通过程序,来操纵数据库,这样可以根据需要灵活地控制用户对数据库的操 

作:既能满足实现他们存取数据的应用需求,又能最大限度地。本课程中,将介绍使用PHP 语言编制程序,让 

用户在网络上,通过这种程序来将他们的数据保存到数据库中,或实现修改、删除等对数据库的操作。  



1。PHP 数据类型:资源型  



概念:一个资源是一个特殊变量,保存了到外部资源的一个引用。资源类型变量保存有为打开文件、数据库连接、 

图形画布区域等的特殊句柄,一般用整数来标识。  这个句柄,好像一根管道,将编程语言与其引用的资源如数 

据库连接起来,二者的交互,在管道中进行,管道或句柄的代号,即一个正整数标识,就是资源型数据。  



                                           

资源的释放:  

在一个PHP 程序的末尾,资源使用的所有外部资源都会被系统自动释放。如有需要,也可以使用某些释放资源 

的函数来显式地释放资源所占内存。    

资源的建立:  

同资源的释放类似,资源是通过专门的函数来建立和使用的。  



                              PHP 讲义    第  62  页  共  90  页  


…………………………………………………………Page 63……………………………………………………………

2。PHP 中用于操纵MySQL 数据库的函数  



PHP 将对 MySQL 数据库的操作,如连接,断开,查询,修改,删除等,都封装成了函数,有些教材中也叫接 

口。  

这些函数属于PHP 手册中的“MySQL 函数库”,常用的有以下几个:  

〃Y  mysql_error  



返回上一个  MySQL  操作产生的文本错误信息。  

语法格式:  

string mysql_error ( 'resource link_identifier' )  

返回上一个  MySQL  函数的错误文本,如果没有出错则返回  ''  (空字符串)。如果没有指定连接资源号,则使用 

上一个成功打开的连接从  MySQL  服务器提取错误信息。    

〃Y  mysql_errno    



返回上一个  MySQL  操作中的错误信息的数字代码。    

语法格式:  

int mysql_errno ( 'resource link_identifier' )  



返回上一个  MySQL  函数的错误代码,如果没有出错则返回  0  (零)。  

注意以上两个函数仅返回最近一次  MySQL  函数的执行(不包括  mysql_error()  和  mysql_errno() )的错误文本 

或代码,因此如果要使用它们,确保在调用另一个  MySQL  函数之前检查它们的值。  

〃Y  mysql_connect  

打开一个到  MySQL  服务器的连接  

语法格式:  

mysql_connect(servername;username;password)  



如果成功则返回一个  MySQL  连接标识,一般为资源型数据,失败则返回  FALSE 。    

函数中参数的解释:  

servername:指明MySQL 数据库所在的服务器主机名称,可用IP 表示  

username:访问该服务器主机的帐号名称  

password:访问该服务器的密码  

注意:  

①不提供参数时使用以下默认值:  

servername=””  (相当于servername= 'localhost' )  

username =””  

password =””  

servername 参数可以包括端口号,如  〃servername:port〃 。    

②可以在函数名前加上  @  来抑制失败时产生的错误信息。    

③一旦脚本结束,到服务器的连接就会被关闭,这点与PHP 每到页末就释放简单变量和客户端变量相同。若要 

显式(强制)地释放该资源,可用  mysql_close() 函数。应养成用完连接,及时释放连接的好习惯。  

〃Y  mysql_close  

语法格式:  

bool mysql_close ( 'resource link_identifier' )  

如果成功则返回  TRUE ,失败则返回  FALSE 。    

mysql_close()  关闭指定的连接标识所关联的到  MySQL  服务器的连接。如果没有指定  link_identifier ,则关闭 

上一个打开的连接。    

通常不需要使用  mysql_close() ,因为由mysql_connect 打开的连接会在脚本执行完毕后自动关闭。但若在脚本 

中间用完后,提倡使用此函数及时连接资源,以提高效率。  

例子  建立和关闭MySQL  连接例子  

      

〃Y  mysql_select_db(〃test〃;server_link)  



选择一个MySQL  数据库,使其成为当前数据库。一个数据库成为当前数据库,那么当前所有的操作都是针对它 

的。  

语法格式:  

bool mysql_select_db ( string database_name '; resource link_identifier' )  

如果成功则返回  TRUE ,失败则返回  FALSE 。    

mysql_select_db()  设定与指定的连接标识符所关联的服务器上的当前数据库。如果没有指定连接标识符,则使 

用上一个打开的连接。如果没有打开的连接,本函数将无参数调用  mysql_connect()  来尝试打开一个并使用之。    

  

例子  mysql_select_db()  例子  

      

    

〃Y  mysql_query  

发送一个  MySQL  查询到当前数据库,由当前数据库执行之。  

语法格式:  

resource mysql_query ( string query '; resource link_identifier' )  

mysql_query()  向与指定的连接标识符关联的服务器中的当前数据库发送一条查询,由当前数据库执行之。  

  

如果没有指定  link_identifier ,则使用上一个打开的连接。如果没有打开的连接,本函数会尝试无参数调用  

mysql_connect()  函数来建立一个连接并使用之。  

  

注:  查询字符串不应以分号结束。    

  

查询结果会被缓存。  

查询结果:  

mysql_query()  仅对  SELECT ,SHOW ,EXPLAIN  或  DESCRIBE  语句返回一个资源标识符,如果查询执行 

不正确则返回  FALSE 。对于其它类型的  SQL  语句,mysql_query()  在执行成功时返回  TRUE ,出错时返回  

FALSE。非  FALSE  的返回值意味着查询是合法的并能够被服务器执行。  

  

以下查询语法上有错,因此  mysql_query()  失败并返回  FALSE :    

      

  

以下查询当  my_col  并不是表  my_tbl  中的列时语义上有错,因此  mysql_query()  失败并返回  FALSE :  

      

  

如果没有权限访问查询语句中引用的表时,mysql_query()  也会返回  FALSE 。    

  

查询结果的查看:  

查看SELECT 语句的查询结果的行数,调用  mysql_num_rows() ;  

查看DELETE,INSERT,REPLACE  或  UPDATE 语句影响的行数,调用  mysql_affected_rows() 。    

  

仅对  SELECT ,SHOW ,DESCRIBE  或  EXPLAIN  语句  mysql_query()  才会返回一个新的结果标识符,可以 

将其传递给  mysql_fetch_array()  和其它处理结果表的函数。  

  

处理完结果集后可以通过调用  mysql_free_result()  来释放与之关联的资源,尽管脚本执行完毕后会自动释放内 

存。    

〃Y  mysql_num_rows  



取得结果集中行的数目  

语法格式:  

int mysql_num_rows ( resource result )  

mysql_num_rows()  返回结果集中行的数目。此命令仅对  SELECT  语句有效。要取得被  INSERT,UPDATE  或 

者  DELETE  查询所影响到的行的数目,用  mysql_affected_rows() 。    

例子  mysql_num_rows()  例子  

  

      

〃Y  mysql_affected_rows  

取得前一次  MySQL  操作所影响的记录行数  

语法格式:  

int mysql_affected_rows ( 'resource link_identifier' )  



取得最近一次与  link_identifier  关联的  INSERT,UPDATE  或  DELETE  查询所影响的记录行数。    

例子  mysql_affected_rows()  例子  

返回目录 上一页 下一页 回到顶部 9 10
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!