[php]自己写的一个MySQL数据库操作类_PHP教程
自己练练手,写一个一个功能比较简单的MySQL数据库操作类
<?php /** * Created by JetBrains PhpStorm. * User:JAE * Date: 13-8-13 * Time: 下午5:15 * Blog:http://blog.jaekj.com * QQ:734708094 * 通用数据库操作类 * 版本:V1.1 */ /* 数据库配置 return array( 'DB_CONFIG' => array( //数据库配置 'DB_HOST'=>'127.0.0.1', //服务器地址 'DB_NAME' => 'tmp', // 数据库名 'DB_USER' => 'root', // 用户名 'DB_PWD' => '', // 密码 'DB_ENCODE'=>'utf8',//编码 'DB_PREFIX' => 'dmtx_' // 数据库表前缀 ) ); */ class M { private $link; //数据库连接 private $table; //表名 private $prefix; //表前缀 private $db_config; //数据库配置 /** * 参数:表名 数据库配置数组 或 数据库配置文件路径 * @param $table * @param string $db_config_arr_path */ function __construct($table, $db_config_arr_path = 'config.php') { if (is_array($db_config_arr_path)) { $this->db_config = $db_config_arr_path; } else { $this->db_config = require($db_config_arr_path); } $this->conn(); $this->table = $this->prefix . $table; } /** * 连接数据库 */ private function conn() { $db_config = $this->db_config; $host = $db_config["DB_CONFIG"]["DB_HOST"]; $user = $db_config["DB_CONFIG"]["DB_USER"]; $pwd = $db_config["DB_CONFIG"]["DB_PWD"]; $db_name = $db_config["DB_CONFIG"]["DB_NAME"]; $db_encode = $db_config["DB_CONFIG"]["DB_ENCODE"]; $this->prefix = $db_config["DB_CONFIG"]["DB_PREFIX"]; $this->link = mysql_connect($host, $user, $pwd) or die('数据库服务器连接错误:' . mysql_error()); mysql_select_db($db_name) or die('数据库连接错误:' . mysql_error()); mysql_query("set names '$db_encode'"); } /** * 数据查询 * 参数:sql条件 查询字段 使用的sql函数名 * @param string $where * @param string $field * @param string $fun * @return array * 返回值:结果集 或 结果(出错返回空字符串) */ public function select($where = '1', $field = "*", $fun = '') { $rarr = array(); if (empty($fun)) { $sqlStr = "select $field from $this->table where $where"; $rt = mysql_query($sqlStr, $this->link); while ($rt && $arr = mysql_fetch_assoc($rt)) { array_push($rarr, $arr); } } else { $sqlStr = "select $fun($field) as rt from $this->table where $where"; $rt = mysql_query($sqlStr, $this->link); if ($rt) { $arr = mysql_fetch_assoc($rt); $rarr = $arr['rt']; } else { $rarr = ''; } } return $rarr; } /** * 数据更新 * 参数:sql条件 要更新的数据(字符串 或 关联数组) * @param $where * @param $data * @return bool * 返回值:语句执行成功或失败,执行成功并不意味着对数据库做出了影响 */ public function update($where, $data) { $ddata = ''; if (is_array($data)) { while (list($k, $v) = each($data)) { if (empty($ddata)) { $ddata = "$k='$v'"; } else { $ddata .= ",$k='$v'"; } } } else { $ddata = $data; } $sqlStr = "update $this->table set $ddata where $where"; return mysql_query($sqlStr); } /** * 数据添加 * 参数:数据(数组 或 关联数组 或 字符串) * @param $data * @return int * 返回值:插入的数据的ID 或者 0 */ public function insert($data) { $field = ''; $idata = ''; if (is_array($data) && array_keys($data) != range(0, count($data) - 1)) { //关联数组 while (list($k, $v) = each($data)) { if (empty($field)) { $field = "$k"; $idata = "'$v'"; } else { $field .= ",$k"; $idata .= ",'$v'"; } } $sqlStr = "insert into $this->table($field) values ($idata)"; } else { //非关联数组 或字符串 if (is_array($data)) { while (list($k, $v) = each($data)) { if (empty($idata)) { $idata = "'$v'"; } else { $idata .= ",'$v'"; } } } else { //为字符串 $idata = $data; } $sqlStr = "insert into $this->table values ($idata)"; } if(mysql_query($sqlStr,$this->link)) { return mysql_insert_id($this->link); } return 0; } /** * 数据删除 * 参数:sql条件 * @param $where * @return bool */ public function delete($where) { $sqlStr = "delete from $this->table where $where"; return mysql_query($sqlStr); } /** * 关闭MySQL连接 * @return bool */ public function close() { return mysql_close($this->link); } } //$hj = new M("user"); //echo $hj->insert("NULL,'hj.q@qq.com','cde'"); //$arr = $hj->select(); //print_r($arr); //echo $hj->update("id>3",array("email"=>"bn@c.cc"));
![[php]自己写的一个MySQL数据库操作类_PHP教程](http://www.bkjia.com/uploadfile/2013/0910/20130910090748157.jpg)
<?php require 'Query/M.class.php'; $hj = new M("user"); //增 echo $hj->insert(array("NULL","1@qq.com","xxx")); echo $hj->insert(array("email"=>"12@qq.com","password"=>"cccc")); echo $hj->insert("NULL,'123@qq.com','cde'"); //查 //查看所有数据 $arr = $hj->select(); print_r($arr); //查看id大于3且id小于6 的id 和email 字段 的所有数据 $arr = $hj->select("id>3 and id<6","id,email"); print_r($arr); //获取数据库中一共有多少条记录 $rt = $hj->select("1","*","count"); echo $rt; // 改 $b = $hj->update("id=1","email = '1234@qq.com'"); echo $b; $b = $hj->update("id>3 and id<6",array("email"=>"1234@qq.com")); echo $b; // 删 $b = $hj->delete("id>3"); echo $b; //关闭 $hj->close();

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,删除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段时,需指定位置以优化查询性能和数据结构;删除字段前需确认操作不可逆;使用在线DDL、备份数据、测试环境和低负载时间段修改表结构是性能优化和最佳实践。

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

要安全、彻底地卸载MySQL并清理所有残留文件,需遵循以下步骤:1.停止MySQL服务;2.卸载MySQL软件包;3.清理配置文件和数据目录;4.验证卸载是否彻底。

MySQL批量插入数据的高效方法包括:1.使用INSERTINTO...VALUES语法,2.利用LOADDATAINFILE命令,3.使用事务处理,4.调整批量大小,5.禁用索引,6.使用INSERTIGNORE或INSERT...ONDUPLICATEKEYUPDATE,这些方法能显着提升数据库操作效率。

MySQL函数可用于数据处理和计算。1.基本用法包括字符串处理、日期计算和数学运算。2.高级用法涉及结合多个函数实现复杂操作。3.性能优化需避免在WHERE子句中使用函数,并使用GROUPBY和临时表。

在macOS上安装MySQL可以通过以下步骤实现:1.安装Homebrew,使用命令/bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"。2.更新Homebrew,使用brewupdate。3.安装MySQL,使用brewinstallmysql。4.启动MySQL服务,使用brewservicesstartmysql。安装后,可通过mysql-u

在MySQL中配置字符集和排序规则的方法包括:1.设置服务器级别的字符集和排序规则:SETNAMES'utf8';SETCHARACTERSETutf8;SETCOLLATION_CONNECTION='utf8_general_ci';2.创建使用特定字符集和排序规则的数据库:CREATEDATABASEexample_dbCHARACTERSETutf8COLLATEutf8_general_ci;3.创建表时指定字符集和排序规则:CREATETABLEexample_table(idINT

使用EXPLAIN命令可以分析MySQL查询的执行计划。1.EXPLAIN命令显示查询的执行计划,帮助找出性能瓶颈。2.执行计划包括id、select_type、table、type、possible_keys、key、key_len、ref、rows和Extra等字段。3.根据执行计划,可以通过添加索引、避免全表扫描、优化JOIN操作和使用覆盖索引来优化查询。
