php中使用mysql的类
墨初 编程开发 547阅读
下面写一个在php中调用mysql的类,此mysql类可以连接mysql数据库,并添加数据,删除数据,列出数据等。
php中操作mysql的类
/** * @name php mysql类 * @host https://www.73so.com */ class mysql { /** * 报错函数 * * @param string $error */ function err($error){ die("对不起,您的操作有误,错误原因为:".$error);//die有两种作用 输出和终止 相当于 echo和exit的组合 } /** * 连接数据库 * * @param string $dbhost 主机名 * @param string $dbuser 用户名 * @param string $dbpsw 密码 * @param string $dbname 数据库名 * @param string $dbcharset 字符集/编码 * [url=home.php?mod=space&uid=155549]@Return[/url] bool 连接成功或不成功 */ function connect($config){ extract($config); if(!($con = mysql_connect($dbhost,$dbuser,$dbpsw))){//mysql_connect连接数据库函数 $this->err(mysql_error()); } if(!(mysql_select_db($dbname,$con))){//mysql_select_db选择数据库的函数 $this->err(mysql_error()); } mysql_query("set names".$dbcharset);//使用mysql_query 设置编码 格式:mysql_query("set names utf8") } /** * 执行sql语句 * * @param string $sql * @return resource 返回执行成功的资源符或执行失败 */ function query($sql){ if(!($query = mysql_query($sql))){ $this->err($sql."<br />".mysql_error()); }else{ return $query; } } /** * 列表 * * @param resource $query sql语句通过mysql_query执行出来的资源 * @return array 返回列表数组 */ function findAll($query){ while($rs = mysql_fetch_array($query,MYSQL_ASSOC)){//mysql_fetch_arrary函数把资源转换成数组,一次转换一行出来 $list[] = $rs; } return isset($list)?$list:""; } /** * 找到单条数据 * * @param resource $query sql语句通过mysql_query执行出来的资源 * @return array 返回单条信息数组 */ function findOne($query){ $rs = mysql_fetch_array($query,MYSQL_ASSOC); return $rs; } /** * @param resource $query sql语句通过mysql_query执行出来的资源 * @param int $row * @param int $filed * @return 返回指定行的指定字段的值 */ function findResult($query,$row = 0,$filed = 0){ $rs = mysql_result($query,$row,$filed); return $rs; } /** * 添加函数 * * @param string $table 表名 * @param array $arr * @return int * 添加数组(包含字段和值的一维数组) */ function insert($table,$arr){ //$sql="insert into 表名(多个字段)values(多个值)" foreach ($arr as $key=>$value){ $value = mysql_real_escape_string($value); $keyArr[] = "`".$key."`";//把$arr数组中的键名保存到$keyArr[]数组当中 $valueArr[] = "`".$value."`";//把$arr数组当中的键值保存到$valueArr当中,因为值多为字符串,而sql语句里面insert当中如果是字符串的话要加单引号,所以这个地方要加上单引号 } $keys = implode(",",$keyArr);//implode函数是把数组组合成字符串 implode(分隔符,数组) $values = implode(",",$valueArr); $sql = "insert into ".$table."(".$keys.")values(".$values.")"; $this->query($sql);//调用类自身的query(执行)方法执行这条sql语句 return mysql_insert_id(); } /** * 修改函数 * * @param string $table 表名 * @param array $arr * 修改数组(包含字段和值的一维数组) * @param string $where 条件 */ function update($table,$arr,$where){ //update 表名 set 字段=字段值 where.... foreach ($arr as $key=>$value){ $value = mysql_real_escape_string($value); $keyAndvalueArr[] = "`".$key."`='".$value."'"; $keyAndvalues = implode(",",$keyAndvalueArr); $sql = "update ".$table." set ".$keyAndvalues." where ".$where;//修改操作 格式 $this->query($sql); } } /** * 删除函数 * * @param string $table 表名 * @param string $where 条件 */ function del($table,$where){ $sql = "delete from ".$table." where ".$where;//删除sql语句 格式: delete frome 表名 where 条件 $this->query($sql); } }