• 1. HCCE 2010课程体系介绍第五章 PHP访问MySQL数据库
  • 2. 前言PHP数组、字符串以及相应的常用函数 PHP的面向对象以及正则表达式
  • 3. 本章内容phpMyAdmin的安装和使用 PHP操作数据库 MySQL的存储过程、触发器、游标和视图
  • 4. 本章目标能够使用phpMyAdmin管理MySQL数据库 掌握PHP操作MySQL数据库 能够使用存储过程、游标等更大效率开发PHP系统
  • 5. 1.使用phpMyAdmin管理MySQLphpMyAdmin 自由、个性 功能强大http://www.phpmyadmin.net phpMyAdmin-3.1.0-all-languages.tar.gz优势: PHP编写的Web应用系统
  • 6. 2.PHP5中MySQL的应用 连接MySQL服务器 mysql_close();函数 mysql_connect();函数 断开MySQL服务器MySQL数据库mysql_connect();MySQL数据库mysql_close();示例2.1.php2.1 连接和断开服务器
  • 7. 2.2 选择数据库建立连接后需要选择数据库。选择数据库使用以下函数: mysql_select_db();函数MySQL数据库mysql_connect();示例2.2.phpinformation_schema mysql test lamp mysql_select_db();
  • 8. 2.3 执行查询并获取结果执行SQL语句 mysql_ query()函数新增示例2.3.php……… //存储数据 if(mysql_query($sql,$link)){ echo "保存数据成功!"; }else { ……..查询示例2.4.php
  • 9. 2.4 修改和删除数据执行SQL语句 mysql_ query()函数修改示例2.5.php删除示例2.6.php mysql_query()函数仅对SELECT、SHOW、EXPLAIN和DESCRIBE语句返回一个资源标识符,如果查询执行失败则返回FALSE。对于其他类型的SQL语句,mysql_query()方法在执行成功时返回TRUE,错误时返回FALSE
  • 10. 3.PHP获取MySQL数据库信息3.1 获取所有的数据库 mysql_ list_dbs()函数获取所有数据库名称示例3.1.php…… $db_list = mysql_list_dbs($link); while ($row = mysql_fetch_object($db_list)) { echo $row->Database . "
    "; } ……
  • 11. 4.PHP5的其他数据库相关函数4.1 mysql_ client_encoding()函数 用于返回最近的数据库连接所使用的默认字符集编码格式 示例4.1.php
  • 12. 4.3 mysql_stat()函数返回MySQL服务器的状态,包括: 正常运行时间(uptime)、线程(threads)、执行的查询(queries)、缓慢的查 询(slow queries)、已打开的数据表(opens)、已刷新的表(flush tables)、 当前打开的表(open tables)和平均每秒的查询数(queries persecond)示例4.3.php
  • 13. 4.4 mysql_get_server_info()函数返回当前MySQL的版本号示例4.4.php
  • 14. 4.5 mysql_get_host_info()函数 返回连接MySQL服务器的连接类型,包括服务器的主机名 返回的字符串中包含了连接类型的相关信息 示例4.5.php
  • 15. 4.6 mysql_get_client_info()函数 返回数据库客户端的版本号示例4.6.php
  • 16. 4.7 报错函数报错函数 mysql_errno()函数返回上一个 MySQL 操作中的错误信息的数字编码 示例4.7.php mysql_errro()函数返回上一个 MySQL 操作产生的文本错误信息示例4.8.php
  • 17. 5.存储过程、触发器、游标和视图MySQL5中的新特性 存储过程 触发器 游标 视图
  • 18. 5.1 存储过程创建存储过程CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body名字参数IN、OUT、INOUT特征值LANGUAGE SQL | [NOT] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } | COMMENT 'string' characteristic特征值分类合法的SQL语句
  • 19. 存储过程characteristic特征值描述特征值描述LANGUAGE SQL创建存储过程的预言是用SQL编写的DETERMINISTIC返回结果是确定的NOT DETERMINISTIC返回结果不确定,默认值CONTAINS SQL不包含读或者写数据的语句,如果特征值没有明确给定,默 认值NO SQL不包含SQL语句READS SQL DATA包含读数据的语句,但不包含写数据的语句MODIFIES SQL DATA包含写数据的语句SQL SECURITY DEFINER指定存储过程用创建存储过程者的权限来执行,默认值SQL SECURITY INVOKER指定存储过程使用调用者的权限来执行COMMENT 'string'注释信息,用来描述存储过程
  • 20. 存储过程创建存储过程示例
  • 21. 存储过程使用BEGIN‥END创建复杂的存储过程
  • 22. 存储过程带参数的存储过程,使用SELECT‥INTO给参数赋值存储过程中的变量名不能与列名相同
  • 23. 存储过程使用SET命令给变量赋值 存储过程中的变量名不能与列名相同
  • 24. 存储过程存储过程的CASE语句 CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END CASE
  • 25. 存储过程LOOP语句 LOOP语句可以被标注,在LOOP循环内的语句一直重复循环直到遇见LEAVE语句被退出。LEAVE语句用于退出任何被标识的流程控制构造。它和BEGIN…END或循环一起被使用
  • 26. 存储过程WHILE语句
  • 27. 存储过程REPEAT语句 重复执行循环体,一直到指定的条件为真为止
  • 28. 存储过程查看存储过程的相关信息 SHOW CREATE PROCEDURE 查看存储过程的创建语法等一些信息,它将返回指定的存储过程的文本信息 SHOW PROCEDURE STATUS 查看指定的存储过程的特性,包括建立存储过程的数据、存储过程名称、 类型、建立者、建立日期以及更改日期等
  • 29. 存储过程SHOW CREATE PROCEDURE
  • 30. 存储过程SHOW PROCEDURE STATUS
  • 31. 存储过程修改存储过程在MySQL5中,必须拥有ALTER ROUTINE权限才可以执行ALTER语句
  • 32. 存储过程删除存储过程
  • 33. 5.2 触发器创建触发器CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt触发器名称触发的时间激发触发器的事件触发器关联表的名称触发器激活时执行的语句创建触发器示例
  • 34. 触发器创建触发器在本步骤中使用了别名“NEW”。例如,NEW.col_name表示引用新列或者被更新列。此外还有另一个别名“OLD”,表示可以引用到一个在被更新或者删除之前存在的列
  • 35. 触发器创建触发器
  • 36. 触发器查看触发器
  • 37. 触发器删除触发器 使用DROP TRIGGER trigger_name语句删除触发器,因为目前MySQL 还没有修改触发器的语法,所以要修改触发器的唯一做法就是先删除 再重新创建
  • 38. 5.3 游标游标 游标实质上是一种能从结果集中(结果集中包括多条数据记录)一次处理 一行或连续几行记录的机制,它提供了一种对从数据库查询出来的数据进 行操作的手段 声明游标 DECLARE cursor_name CURSOR FOR select_statement游标名称游标结果集的查询语句打开游标 OPEN cursor_name使用游标 FETCH cursor_name INTO var_name [, var_name]...关闭游标 CLOSE cursor_name
  • 39. 游标游标示例
  • 40. 游标游标示例DECLARE CONTINUE HANDLER FOR NOT FOUND DECLARE handler_type HANDLER FOR condition_value[,...] sp_statementCONTINUE:执行处理语句之后继续执行 EXIT:执行被终止预声明的条件值SQLSTATE [VALUE] sqlstate_value | condition_name | SQLWARNING | NOT FOUND | SQLEXCEPTION | mysql_error_code
  • 41. 游标条件值条件值描述sqlstate_valueSQLSTSTE值condition_name条件名SQLWARNING警告或注释NOT FOUND未发现SQLEXCEPTION错误mysql_error_codeMySQL错误代码
  • 42. 游标游标示例
  • 43. 视图视图 虚拟的表CREATE TABLE IF NOT EXISTS `salary` ( `id` int(4) NOT NULL AUTO_INCREMENT, `money` varchar(12) NOT NULL, `name` varchar(125) NOT NULL, `address` varchar(125) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT AUTO_INCREMENT=5 ; INSERT INTO `salary` (`id`, `money`, `name`, `address`) VALUES (1, '7000', '张三', '北京中关村'), (2, '8000', '李四', '深圳南山区'), (3, '10000', '王五', '上海'), (4, '20000', '刘大麻子', '全国各地');
  • 44. 视图使用视图
  • 45. 视图修改视图
  • 46. 视图查看创建视图的语法
  • 47. 视图删除视图
  • 48. 本章总结phpMyAdmin的安装和使用 PHP5连接和断开MySQL服务器 PHP5对MySQL数据库的操作 PHP5获取MySQL服务器信息 PHP5的新特性:存储过程、触发器、游标和视图
  • 49. (本页无文本内容)