首先引入mypdo类
<?php
//自动加载类
spl_autoload_register(function($class_name){
require "./inc/{$class_name}.class.php";
});
//配置参数
$param=array(
'host'=>"127.0.0.1",
'user'=>'root',
'pwd'=>'123456',
'dbname'=>'datagoods'
);
//获取单例
$mypdo=MyPDO::getInstance($param);
插入语句
$table="products";
$data['proname']="钢笔";
$data['proprice']=100;
//第一步:拼接字段名
$keys=array_keys($data);//获取所有字段名
$keys=array_map(function($key){//在所有字段名上添加反引号
return "`{$key}`";
},$keys);
$keys= implode(',',$keys);//字段名用,隔开
//第二部获取值
$values=array_values($data);
$values=array_map(function($v){
return "'{$v}'";
},$values);
$values=implode(',',$values);
//第三步:拼接SQL语句insert into
$sql="insert into `{$table}`({$keys}) values({$values})";
//echo $sql;
$rs=$mypdo->exec($sql);
echo $rs;
数据更新sql拼接
$table="products";
$data['proID']=83;
$data['proname']="铅笔";
$data['proprice']=100;
//获取主键
function getPrimaryKey($table){
$sql="desc $table";
$rs =$GLOBALS['mypdo']->fetchAll($sql);
//echo $rs;
//循环判断主键
foreach($rs as $row){
if($row['Key']=="PRI")
return $row['Field'];
}
}
//获取数组下标,不区分大小写
function getPKIndex($pk,$array){
foreach($array as $index=>$v){
if(strtoupper($v)==strtoupper($pk))
return $index;
}
return null;
}
$pk=getPrimaryKey($table);
//第一步:获取值
$keys=array_keys($data);
$index=array_search($pk,$keys);//返回组件在数组中的下标
//$index= getPKIndex($pk,$keys);//不区分大小写
unset($keys[$index]);
//第二步:拼接`键`='值'的形式
$keys=array_map(function($key) use($data){
return "`{$key}`='{$data[$key]}'";
}, $keys);
$keys=implode(',', $keys);
//第三步:拼接SQL语句update
$sql="update {$table} set $keys where $pk =$data[$pk]";
//echo $sql;
$rs=$mypdo->exec($sql);
echo $rs;
简单查询语句拼接
function select($table,$cond=array()){
$sql="select * from {$table} where 1";
if(!empty($cond)){
foreach($cond as $k=>$v){
if(is_array($v)){//条件值是数组类型
switch ($v[0]) {//$v[0] 保存的是符号 $v[1] 保存的是值
case 'eq'://等于
$op="=";
break;
case 'gt'://大于
$op=">";
break;
case 'lt':
$op="<";
break;
case 'gte':
case 'egt':
$op=">=";
break;
case 'lte':
case 'elt':
$op="<=";
break;
case 'neq':
$op="<>";
break;
}
$sql.=" and `$k` $op '$v[1]'";
}else{
$sql.=" and `$k`='$v'";
}
}
}
return $sql;
}
$table="products";
$cond=array(
'proname'=>"钢笔",
'proprice'=>array('gte',100)
);
$sql=select($table,$cond);
$list=$mypdo->fetchAll($sql);
echo "<pre>";
var_dump($list);
一定要注意函数内部使用外部变量,一定要用use或$GLOBALS[''],否则会出错的。