从表单中post的数组 array('user'=>'mario','email'=>'12345')过来的信息我可以 $arr=$_POST;
那么,如果我是使用函数function封装的话,需要把post过来的数据写入数据库,该怎么操作呢?求指教。
如果是面向过程,我知道怎么写。
$user = $_POST['user'];
$sql = "insert into (`user`,`email`)VALUES('$user,'$email'')";
.......
但是如果是封装函数呢?这个函数应该怎么写?
例如
function ($table,$arr)
{
这里面改怎么写?怎么吧数组拆分?
}
/** * 插入数据库 * @param $table * @param $data */ function insert($table, $data) { //解析字段 $attrs= array_keys($data); $cols = join(',',$attrs); //解析值 //因为值有字符串和数字之分,都加上单引号 foreach($data as &$row){ $row = "'".$row."'"; } $datas = join(',',$data); //生成的SQL为 $sql = "INSERT INTO `{$table}`({$cols}) VALUES ({$datas})"; }
funciton populateForm($reules){
balabala....
if ($valid){
return array("valid"=>true,"data"=array(cleandata));
}else {
return array("valid"=>false,"errormsg"=array(wrongdata));
}
}
######function insertData($tableName,$dataArr)
/** * 插入数据库 * @param $table * @param $data */ function insert($table, $data) { //解析字段 $attrs= array_keys($data); $cols = join(',',$attrs); //解析值 //因为值有字符串和数字之分,都加上单引号 foreach($data as &$row){ $row = "'".$row."'"; } $datas = join(',',$data); //生成的SQL为 $sql = "INSERT INTO `{$table}`({$cols}) VALUES ({$datas})"; }
print_r($arr);
分解了一遍,完全明白。感谢!
######正确的写法应该是
$str = '`'.implode('`,`',array_keys($arr)).'`';
$arr = "'".implode("','",$arr)."'";
这样出来的结果才是insert into `table`(`user`,`passwd`) values('$user','$passwd';)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。