热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

数据库连接操作类

数据库连接操作类:数据库连接操作类_linkmysql_connect($dbhost,$dbuser,
数据库连接操作类
  1. class mysql
  2. {
  3. private $_link;
  4. public function __construct($dbhost,$dbuser,$dbpassword,$dbname,$charset='utf8')
  5. {
  6. $this->_link = mysql_connect($dbhost,$dbuser,$dbpassword,true); /*连接数据库*/
  7. $this->_link or $this->errmsg('Can\'t connect to MySQL server!'); /*是否连接成功*/
  8. if ($this->version() > '4.1') { /*检查数据库版本*/
  9. $this->query('set names '.$charset); /*设置数据库编码*/
  10. }
  11. mysql_select_db($dbname,$this->_link) or $this->errmsg('Can\'t select the database!'); /*打开数据库*/
  12. }
  13. /*执行数据库操作*/
  14. public function query($sql)
  15. {
  16. $result = mysql_query($sql,$this->_link);
  17. $result or $this->errmsg('Execute sql sentence error!');
  18. return $result;
  19. }
  20. /*返回根据从结果集取得的行生成的数组*/
  21. /*MYSQL_BOTH 得到一个同时包含关联和数字索引的数组 (如同 mysql_fetch_array())*/
  22. /*MYSQL_ASSOC 得到一个同时包含关联和数字索引的数组 (如同 mysql_fetch_assoc())*/
  23. /*MYSQL_NUM 得到一个同时包含关联和数字索引的数组 (如同 mysql_fetch_row())*/
  24. public function fetch_array($result,$type = MYSQL_BOTH)
  25. {
  26. return mysql_fetch_array($result,$type);
  27. }
  28. /*返回根据所取得的行生成的对象*/
  29. public function fetch_object($result)
  30. {
  31. return mysql_fetch_object($result);
  32. }
  33. /*取得前一次 MySQL 操作所影响的记录行数*/
  34. public function affected_rows()
  35. {
  36. return mysql_affected_rows($this->_link);
  37. }
  38. /* 释放结果内存*/
  39. public function free_result($result)
  40. {
  41. return mysql_free_result($result);
  42. }
  43. /* 取得结果集中行的数目*/
  44. public function num_rows($result)
  45. {
  46. return mysql_num_rows($result);
  47. }
  48. /* 取得结果集中字段的数目*/
  49. public function num_fields($result)
  50. {
  51. return mysql_num_fields($result);
  52. }
  53. /*取得上一步 INSERT 操作产生的 ID*/
  54. public function insert_id()
  55. {
  56. return mysql_insert_id($this->_link);
  57. }
  58. /* 发出mysql执行错误*/
  59. private function errmsg($msg)
  60. {
  61. $message = 'A mysql error has occurred!
    ';
  62. $message .= 'Error Number:'. mysql_errno($this->_link) .'
    ';
  63. $message .= 'Error Description:'. $msg . mysql_error($this->_link) .'
    ';
  64. $message .= 'Error Time:'. date('Y-m-d H:i:s');
  65. exit($message);
  66. }
  67. /*返回连接的标识*/
  68. public function link_id()
  69. {
  70. return $this->_link;
  71. }
  72. /*返回数据库服务器版本*/
  73. public function version() {
  74. return mysql_get_server_info($this->_link);
  75. }
  76. /*获得客户端真实的IP地址*/
  77. function getip() {
  78. if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) {
  79. $ip = getenv("HTTP_CLIENT_IP");
  80. } else
  81. if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) {
  82. $ip = getenv("HTTP_X_FORWARDED_FOR");
  83. } else
  84. if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) {
  85. $ip = getenv("REMOTE_ADDR");
  86. } else
  87. if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) {
  88. $ip = $_SERVER['REMOTE_ADDR'];
  89. } else {
  90. $ip = "unknown";
  91. }
  92. return ($ip);
  93. }
  94. }

推荐阅读
  • 本文介绍了Paxos的世界中关于复制日志与状态机的概念和重要性。通过存储日志来实现数据的持久化,并通过日志流来记录数据的变化,而不是直接持久化数据本身。这样做的好处是简化了持久化存储的操作,并且方便多机之间的数据同步。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 推荐一个ASP的内容管理框架(ASP Nuke)的优势和适用场景
    本文推荐了一个ASP的内容管理框架ASP Nuke,并介绍了其主要功能和特点。ASP Nuke支持文章新闻管理、投票、论坛等主要内容,并可以自定义模块。最新版本为0.8,虽然目前仍处于Alpha状态,但作者表示会继续更新完善。文章还分析了使用ASP的原因,包括ASP相对较小、易于部署和较简单等优势,适用于建立门户、网站的组织和小公司等场景。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
author-avatar
淘宝店名维衣潮都_233
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有