>백엔드 개발 >PHP 튜토리얼 >데이터베이스 작업 PHP 클래스

데이터베이스 작업 PHP 클래스

WBOY
WBOY원래의
2016-07-25 08:44:271049검색
  1. /*
  2. * 작성자 Molong
  3. * 시간 2010년 12월 2일 15:50:35
  4. */
  5. $db = new mysql($db_host,$db_user,$db_password,$db_table,$db_conn,$pre,$coding)
  6. class mysql{
  7. private $ db_host
  8. private $db_user;
  9. private $db_table;
  10. private $db_conn; //쿼리 명령 실행 결과; 🎜> private $sql; //sql 실행문
  11. private $pre; //데이터베이스 테이블 접두사
  12. private $coding; //데이터베이스 인코딩, GBK, UTF8, gb2312
  13. function __construct($ db_host,$db_user,$db_password,$db_table,$db_conn,$pre,$coding){
  14. $this->db_host = $db_host
  15. $this->db_user = $db_user;
  16. $this->db_password = $db_password;
  17. $this->db_table = $db_table; $this->db_conn = $db_conn; pre;
  18. $this->coding = $coding;
  19. $this->connect()
  20. 함수 연결(){
  21. $this->db_conn = @mysql_connect($this->db_host,$this->db_user,$this->db_password) 또는 die($this->show_error("데이터베이스 링크 오류입니다. 확인해주세요) 데이터베이스 링크 구성! "));
  22. if(!mysql_select_db($this->db_table,$this->db_conn)){
  23. echo "데이터 테이블을 찾을 수 없습니다:".$this->db_table;
  24. }
  25. mysql_select_db($this->db_table,$this->db_conn)
  26. $this->query("SET NAMES $this->coding");
  27. /*SQL문을 실행하는 함수*/
  28. function query($sql){
  29. if(emptyempty($sql)){
  30. $this->show_error( "SQL 문은 비워둘 수 없습니다!");
  31. }else{
  32. $this->sql = $sql;
  33. }
  34. $result = mysql_query($this->sql,$this->db_conn);
  35. return $this->result = $result;
  36. }
  37. /*새 데이터베이스 생성 및 추가*/
  38. public function create_database($database_name){
  39. $database=$database_name;
  40. $sqlDatabase = '데이터베이스 생성'.$database;
  41. return $this->query($sqlDatabase)
  42. }
  43. // 쿼리 결과 기반 선택 시 결과 세트의 결과 수를 계산합니다
  44. public function db_num_rows(){
  45. if($this->result==null){
  46. if($this->show_error){
  47. $this-> ;show_error("SQL 문 오류!");
  48. }
  49. }else{
  50. return mysql_num_rows($this->result)
  51. }
  52. }
  53. / *서버의 모든 데이터베이스 쿼리*/
  54. //보다 직관적인 표시를 위해 시스템 데이터베이스와 사용자 데이터베이스를 분리하시겠습니까?
  55. public function show_databases(){
  56. $this-> ;query("데이터베이스 표시");
  57. echo "기존 데이터베이스:".$amount =$this->db_num_rows($rs)
  58. echo "
    "; i=1;
  59. while ($row = $this->fetch_array($rs)){
  60. echo "$i $row[Database]"
  61. echo "
    " ;
  62. $i ;
  63. }
  64. }
  65. //호스트의 모든 데이터베이스 이름을 배열로 반환합니다.
  66. public function Databases()
  67. {
  68. $rsPtr =mysql_list_dbs($this->db_conn );
  69. $i=0;
  70. $cnt=mysql_num_rows($rsPtr)
  71. while($i<$cnt)
  72. {
  73. $ rs[]=mysql_db_name($rsPtr, $i);
  74. $i ;
  75. }
  76. return print_r($rs)
  77. /*아래의 모든 테이블 쿼리 데이터베이스*/
  78. function show_tables( $database_name){
  79. $this->query("show tables")
  80. echo "기존 데이터베이스: ".$amount = $this->db_num_rows($ rs);
  81. echo "
    "
  82. $i=1
  83. while($row = $this->fetch_array($rs)){
  84. $columnName= "Tables_in_".$
  85. echo "$i $row[$columnName]"
  86. echo "
    "
  87. $i
  88. }
  89. } 🎜>
  90. /*
  91. mysql_fetch_row() 배열 $row[0],$row[1],$row[2]
  92. mysql_fetch_array() 배열 $row[0] 또는 $row[id]
  93. mysql_fetch_assoc() 배열 사용 $ row->content 필드는 대소문자를 구분합니다
  94. mysql_fetch_object() 객체는 $row[id]를 사용하고 $row[content] 필드는 대소문자를 구분합니다
  95. */
  96. /*레코드 세트 가져오기, 배열 인덱스 가져오기 및 연관 가져오기, $row['content'] 사용 */
  97. 공개 함수 fetch_array()
  98. {
  99. return @mysql_fetch_array($this->result );
  100. }
  101. //연관 배열을 가져오고 $row['필드 이름']을 사용합니다.
  102. public function fetch_ass()
  103. {
  104. return @mysql_fetch_assoc($this- >result);
  105. }
  106. //숫자 인덱스 배열을 가져오고 $row[0],$row[1],$row[2] 사용
  107. 공용 함수 fetch_row()
  108. {
  109. return @mysql_fetch_row($this-> ;result);
  110. }
  111. //객체 배열을 가져오고 $row->content 사용
  112. 공용 함수 fetch_Object()
  113. {
  114. return @mysql_fetch_object($this-> ;result)
  115. }
  116. //간단화된 쿼리 select
  117. public function findall($table){
  118. $table = $this->fulltablename($table);
  119. $this->query("$table에서 * 선택");
  120. }
  121. 공개 함수 select($table,$columnName ,$condition){
  122. $table = $this-> ;fulltablename($table);
  123. if(emptyempty($columnName)){
  124. $columnName = "*" }
  125. $this->query("SELECT $columnName FROM $table $condition")
  126. }
  127. //단순 삽입
  128. function insert($table,$arr){
  129. $table = $this->fulltablename($table);
  130. $sql = "$table에 삽입"
  131. if(!is_array($arr)){
  132. $this->show_error( "매개변수 배열을 입력해주세요!");
  133. }else{
  134. $k = "";
  135. $v = "";
  136. foreach($arr as $key => $value){
  137. $k . = "`$key`,";
  138. $v .= "'".$value."',"
  139. }
  140. }
  141. $sql = $sql." (".substr($k,0,-1).") VALUES (".substr($v,0,-1).")";
  142. $this->query($sql);
  143. }
  144. //완전한 업데이트
  145. function update($table,$arr,$where){
  146. $table = $this->fulltablename($table)
  147. $sql = "$table SET 업데이트";
  148. if(!is_array($arr)){
  149. $this->show_error("请输入参数数组!");
  150. }else{
  151. foreach($arr as $key => $value){
  152. $sql .= "`".$key."` = '".$value." ' ,";
  153. }
  154. }
  155. $sql = substr($sql,0,-1)." where ".$where;
  156. return $this->query($sql) ;
  157. }
  158. // 简化的delete
  159. function delete($table,$where = ""){
  160. $table = $this->fulltablename($table);
  161. if (emptyempty($where)){
  162. $this->show_error("조건 불능 为空!");
  163. }else{
  164. $where = " where ".$where;
  165. }
  166. $sql = "DELETE FROM $table ".$where;
  167. //echo $sql;
  168. return $this->query($sql);
  169. }
  170. // 획득上一步 INSERT 操作产生的ID
  171. public function insert_id(){
  172. return mysql_insert_id(); fulltablename($table){
  173. return $table = $this->pre.$table;
  174. }
  175. // 查询字段数量
  176. public function num_fields($table){
  177. $table = $this->fulltablename($table);
  178. $this->query("select * from $table");
  179. echo "
    ";
  180. echo "글자 수:".$total = mysql_num_fields($this->result);
  181. echo "
    "; </li>
    <li> for ($i=0; $i<$total; $i ){ <li> print_r(mysql_fetch_field($this->result,$i) ); </li>
    <li> } </li>
    <li> echo "
    ";
  182. echo "
    ";
  183. }
  184. // 취득 MySQL 복복기 신식
  185. public function mysql_server($num=''){
  186. switch ($num){
  187. case 1 :
  188. return_mysql_get (); //MySQL 복복기 신식
  189. break;
  190. case 2 :
  191. return mysql_get_host_info(); // 취득 MySQL 주책신식
  192. break;
  193. case 3
  194. return mysql_get_client_info(); // 취득 MySQL 객현단 신식
  195. break;
  196. case 4 :
  197. return mysql_get_proto_info(); // 취득 MySQL 协议信息
  198. default:
  199. return mysql_get_client_info(); // 默认 취득 mysql판본신식 > /*public function __destruct()
  200. {
  201. if(!empty($this->result)){
  202. $this->free();
  203. }
  204. mysql_close( $this->$db_conn);
  205. }*/
  206. /* 진득 객관단 진연적 IP 지자*/
  207. function getip(){
  208. if(getenv("HTTP_CLIENT_IP) ) && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
  209. {
  210. $ip = getenv("HTTP_CLIENT_IP");
  211. }
  212. else if (getenv("HTTP_X_FOR strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")){
  213. $ip = getenv("HTTP_X_FORWARDED_FOR");
  214. }
  215. else if (getenv("REMOTE_ADDR") && REMOTE_ADDR"), "unknown"))
  216. {
  217. $ip = getenv("REMOTE_ADDR");
  218. }
  219. else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER[ 'REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")){
  220. $ip = $_SERVER['REMOTE_ADDR'];
  221. }
  222. else{
  223. $ip = "unknown";
  224. }
  225. return($ip);
  226. }
  227. function show_error($str){
  228. echo "";
  229. }
  230. }
  231. ?>
  232. 复制代码
  233. PHP

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.