Home  >  Article  >  Backend Development  >  Database connection operation class

Database connection operation class

WBOY
WBOYOriginal
2016-07-25 09:11:41680browse
Database connection operation class
  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); /*Connect to database*/
  7. $this->_link or $this->errmsg('Can't connect to MySQL server! '); /*Whether the connection is successful*/
  8. if ($this->version() > '4.1') { /*Check the database version*/
  9. $this->query('set names '.$charset ); /*Set database encoding*/
  10. }
  11. mysql_select_db($dbname,$this->_link) or $this->errmsg('Can't select the database!'); /*Open the database*/
  12. }
  13. /*Perform database operations*/
  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. /*Returns an array generated based on the rows obtained from the result set*/
  21. /*MYSQL_BOTH Gets an array containing both associative and numeric indexes (like mysql_fetch_array())*/
  22. /*MYSQL_ASSOC Gets an array that contains both associative and numeric indexes (like mysql_fetch_assoc())*/
  23. /*MYSQL_NUM Gets an array that contains both associative and numeric indexes (like mysql_fetch_row())*/
  24. public function fetch_array($result,$type = MYSQL_BOTH)
  25. {
  26. return mysql_fetch_array($result,$type);
  27. }
  28. /*Return the object generated based on the obtained row*/
  29. public function fetch_object($result )
  30. {
  31. return mysql_fetch_object($result);
  32. }
  33. /*Get the number of record rows affected by the previous MySQL operation*/
  34. public function affected_rows()
  35. {
  36. return mysql_affected_rows($this->_link);
  37. }
  38. /* Release the result memory*/
  39. public function free_result($result)
  40. {
  41. return mysql_free_result($result);
  42. }
  43. /* Get the number of rows in the result set*/
  44. public function num_rows($result )
  45. {
  46. return mysql_num_rows($result);
  47. }
  48. /* Get the number of fields in the result set*/
  49. public function num_fields($result)
  50. {
  51. return mysql_num_fields($result);
  52. }
  53. /* Get the ID generated by the previous INSERT operation*/
  54. public function insert_id()
  55. {
  56. return mysql_insert_id($this->_link);
  57. }
  58. /* Issue a mysql execution error*/
  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. /*Return the connection ID*/
  68. public function link_id()
  69. {
  70. return $this->_link;
  71. }
  72. /*Return the database server version*/
  73. public function version() {
  74. return mysql_get_server_info($this->_link);
  75. }
  76. /*Get the real IP address of the client*/
  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. }
Copy code


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn