一 知识点:
1、 php 链接mysql数据库的函数: mysqli_connect(数据库ip地址,数据库用户名,数据库密码,数据库名字);
mysqli_connect函数返回的是数据库对象.
2、 php 执行SQL语句的函数:query(SQL语句);
query($sql)函数返回结果集;
3、fetch_assoc():返回关联数据
4、affected_rows:返回删除或者是更新,插入数据库的行数。
5、explode():该函数函数可以把字符串转化成数组。如:explode(",",$param),把以逗号为分隔符的字符串转化成数组
6、is_string():判断该变量是否是字符串
7、is_array(): 判断该变量是否是数组
8 、array_keys():把数组中的键转化成数组
9、 array_values():把数组中的值转化成数组
二 代码
1 SQL语句 表结构
CREATE TABLE `blog_user` (
`uid` mediumint(6) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`uname` varchar(50) DEFAULT NULL,
`pwd` varchar(32) DEFAULT NULL COMMENT 'md5加密后的字符串是32位',
`type` tinyint(2) DEFAULT '0' COMMENT '是否为管理员:1为管理员,0位不同用户',
`email` varchar(60) DEFAULT NULL,
`loginip` varchar(15) DEFAULT NULL,
`logintime` int(10) DEFAULT NULL,
PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;
2 代码
config.php
<?php
define("DBUSERNAME","root");
define("DBPASSWORD","123456");
define("DBADRRESS","127.0.0.1");
define("DBNAME","blog");
define("DBPREFIX","blog_");
?>
index.php
<?php
include "config.php";
class db{
public $TableName;
public $Option = array();
public $dbObject;
//构造函数
function __construct($TableName){
//连接数据库,mysqli返回的是数据库对象
$this->dbObject = mysqli_connect(DBADRRESS,DBUSERNAME,DBPASSWORD,DBNAME);
if(!$this->dbObject)
{
die("connect database fail!");
}
//初始化表名
$this->TableName = DBPREFIX.$TableName;
$this->Option['filed'] ="*";
}
//查询表中的所有数据
function Select(){
$sql ="select {$this->Option['filed']} from {$this->TableName} {$this->Option['where']}";
$ArrayData =array();
$ArrayData = $this->Sql($sql);
return $ArrayData;
}
//查询条件
function Where($where){
$this->Option['where'] = is_string($where) ? "where ".$where : "";
return $this;
}
//查询表中所有字段
function GetAllFileds($filed){
//获取表中所有字段
$sql = "DESC {$this->TableName}";
$result =$this->dbObject->query($sql);
$dataArray = array();
while(($row =$result->fetch_assoc())!=false)
{
$dataArray =$row['Field'];
}
}
//执行查询sql语句并返回结果集
function Sql($sql){
if(empty($sql)){
die("查询语句不能为空");
}
$dataArray = array();
$result = $this->dbObject->query($sql) or $this->dbObject->error;
if(!empty($result)){
while(($row = $result->fetch_assoc())!=false){
$dataArray = $row;
}
}
return $dataArray;
}
//执行删除,更新,插入的sql语句并返回删除的条数
function Query($sql){
$this->dbObject->query($sql) or $this->dbObject->error;
return $this->dbObject->affected_rows;
}
//插入一条数据
function Insert($paramArray){
if(!is_array($paramArray)){
die("不是数组");
}
//把数组中的键转化成数组
$ArrayField = array_keys($paramArray);
//把数组中的值转化成数组
$ArrayValue = array_values($paramArray);
$strField = $this->GetField($ArrayField);
$strValue = $this->GetValue($ArrayValue);
$sql ="insert into {$this->TableName}({$strField}) VALUES({$strValue}) ";
return $this->query($sql);
}
//获取有效字段
function GetField($paramString){
$dataArray = is_string($paramString)? explode(",",$paramString):$paramString;
if(!is_array($dataArray)){
die("不是数组");
}
$str="";
foreach($dataArray as $key=>$val){
$str=$str."`".$val."`".",";
}
$str = rtrim($str,",");
return $str;
}
//获取插入数据
function GetValue($paramString){
//如果是字符串就转换成数组
$dataArray = is_string($paramString)? explode(",",$paramString):$paramString;
if(!is_array($dataArray)){
die("需要传入数组或者字符串");
}
$str="";
foreach($dataArray as $key=>$val){
$str =$str."'".$val."'".",";
}
//去除右边最后一个逗号
$str =rtrim($str,",");
return $str;
}
}
$instanceDb = new db("user");
$insertValue = array("uname"=>"zz","pwd"=>"123");
var_dump($instanceDb->Insert($insertValue));
var_dump($instanceDb->Where("uid = 15")->Select());
var_dump($instanceDb->query("DELETE from blog_user"));
?>