《HP与MySQL数据库.ppt》由会员分享,可在线阅读,更多相关《HP与MySQL数据库.ppt(26页珍藏版)》请在三一办公上搜索。
1、PHP动态网页设计教程,十、PHP与MySQL数据库,黄迎久内蒙古科技大学工程训练中心,主要内容,本讲主要内容(1)PHP动态网页与MySQL的综合应用;,一、PHP中连接MySQL数据库,1、连接MySQL数据库 进行MySQL数据库操作前,确保成功连接MySQL数据库。PHP中连接MySQL数据库服务器最简单的函数是mysql_connect().mysql_connect(string hostname,string username,string password);,通过PHP程序连接MySQL数据库服务器。若连接成功,则返回一个MySQL服务器连接标识符,否则,返回FALSE。,二
2、、PHP中设置字符集,2、设置数据库字符集 PHP与MySQL服务器成功连接后,才可以进行信息交互。信息交互之前,为防止中文乱码,通常将字符集设置为GBK或UTF8。将MySQL数据库的字符集设为GBK或UTF8是前期工作;还要将客户端、连接字符和结果字符设置为GBK或UTF8;调用PHP函数mysql_query(set names gb2312)可实现以上步骤;,三、PHP中关闭MySQL数据库,3、关闭MySQL数据库连接 MySQL服务器连接占用了数据库服务器以及WEB服务器大量资源,PHP程序与MySQL服务器信息交互之后应尽早关闭MySQL服务器。函数mysql_close(res
3、ource link_identifier)可以关闭MySQL服务器,mysql_close()函数关闭指定的连接标识符所关联的MySQL服务器。若没有指定的link_identifier,则关闭上一个打开的连接。若关闭成功,返回TRUE,失败返回FALSE。,四、PHP中操作MySQL数据库,;$close=mysql_close($link);if($close)echo 成功关闭MySQL服务器;else echo 关闭MySQL服务器失败!程序中断执行!;?,四、PHP中选择MySQL数据库,4、选择当前操作的数据库 使用函数mysql_select_db()可以设置当前操作的数据库。
4、bool mysql_select_db(string dbasename,resource link_identifier);,若没有指定MySQL服务器连接标识符,则使用上一个打开的MySQL服务器,若没有打开的连接,本函数将无参数调用mysql_connect()尝试打开一个新的MySQL服务器连接然后使用它。若选择当前操作的数据库成功,则返回TRUE;否则,返回FALSE;,四、PHP中选择MySQL数据库,;$close=mysql_close($link);?,五、PHP中发送MySQL命令,5、发送SQL语句或MySQL命令 使用函数mysql_query()可以向MySQL服务
5、器发送SQL局域或MySQL命令。bool|resource mysql_query(string sql,resource identifer);,*当发送的sql字符串执行失败时,mysql_query()函数返回FALSE;*发送的字符串是insert、update、或delete语句,并且sql字符串执行成功时,mysql_query()返回TRUE;*发送的字符串是select语句,并且select语句执行成功时,函数返回结果集(result)类型的数据(实际是resource类型的数据)。,五、PHP中发送MySQL命令,5、发送SQL语句或MySQL命令(1)发送insert、u
6、pdate或delete语句 使用PHP的mysql_query()函数向MySQL服务器引擎发送insert、update、delete等语句,可以使用mysql_affected_rows()函数查看该SQL语句影响到的表记录行数。int mysql_affected_rows(resource link_identifier),*取得最近一次与link_indentifier关联的insert、update、delete语句所影响的记录行数。,五、PHP中发送MySQL命令,5、发送SQL语句或MySQL命令(1)发送insert、update或delete语句 使用PHP的mysql_
7、query()函数发送insert语句向某个数据表中添加记录时,若该数据表的某个字段为auto_increment自增字段,可以使用mysql_insert_id()函数得到当前insert语句执行后该字段的值。int mysql_insert_id(resource link_identifier),*返回给定的link_indentifier中上一条insert语句产生的auto_increment的ID号,若没有给定link_identifer,则使用上一个打开的MySQL连接。,五、PHP中发送MySQL命令,5、发送SQL语句或MySQL命令;?,五、PHP中发送MySQL命令,5、
8、发送SQL语句或MySQL命令;?,五、PHP中发送MySQL命令,5、发送SQL语句或MySQL命令;?,五、PHP中发送MySQL命令,5、发送SQL语句或MySQL命令(2)发送select语句 mysql_query()函数发送select语句后,将返回一个结果集数据,可以使用mysql_num_rows()函数查看该select查询到的记录数。int mysql_num_rows(resource result),*返回结果集result中记录的行数,该函数仅对select语句有效。*结果集(result)使用过后,要尽快将其占用的服务器资源释放,可以使用mysql_free_res
9、ult()函数实现。bool mysql_free_rresult(resource result),五、PHP中发送MySQL命令,5、发送SQL语句或MySQL命令;mysql_free_result($result);mysql_close($link);?,六、PHP中遍历记录,6、遍历结果集中的数据 使用mysql_query()函数取得select语句的结果集后,可以使用mysql_fetch_row()、mysql_fetch_array()或mysql_fetch_object()遍历结果集中的数据。arry mysql_fetch_row(resource result),*
10、从结果集中取得下一行的记录,并将该记录生成一个数组;*数组的元素的键为从0开始的整数,数组元素的值依次为select语句中“字段列表”的值;若结果集result中没有下一行记录,则函数返回FALSE。,六、PHP中遍历记录,6、遍历结果集中的数据 arry mysql_fetch_array(resource result),*该函数是mysql_fetch_row()的扩展版本,该函数的返回值除了包含mysql_fetch_row()的返回值,还包含select语句中“字段列表=字段列表值”的数组元素。,六、PHP中遍历记录,6、遍历结果集中的数据;mysql_free_result($se
11、lect);mysql_close();?,六、PHP中遍历记录,6、遍历结果集中的数据;mysql_free_result($select);mysql_close();?,六、PHP中遍历记录,6、遍历结果集中的数据 xh;echo$student-xm;echo$student-bj;echo$student-nl.;mysql_free_result($select);mysql_close();?,七、PHP中连接与关闭MySQL的时机,7、MySQL数据库连接与关闭的最佳时机 MySQL数据库服务器应该尽早地关闭,并不意味着在同一个PHP程序中,每一次数据库操作后,立即关闭MySQ
12、L服务器连接。在PHP程序中,每开启一次新的MySQL服务器连接和关闭MySQL服务器连接,耗费了网络资源和服务器资源。一般情况下,一个PHP动态页面中,仅打开一次MySQL服务器连接。,八、PHP中连接与关闭MySQL的文件,8、MySQL数据库连接与关闭函数的制作 由于WEB系统中的PHP程序需要经常和数据库服务器进行交互,而数据库服务器连接又是非常宝贵的系统资源,为了方便管理数据库服务器连接,可以制作PHP函数或文件专门管理数据库服务器连接。,function connection()$hostname=localhost;$database=my_db;$username=root;$password=;mysql_connect($host,$username,$password);mysql_select_db($database);mysql_query(set names gb2312);,八、PHP中连接与关闭MySQL的文件,8、MySQL数据库连接与关闭函数的制作 function closeconnection()mysql_close();,本讲总结,本讲总结(1)掌握PHP与MySQL数据库连接、操作的方法;(2)掌握PHP程序遍历记录的方法;,Thank You!,内蒙古科技大学 工程训练中心,