PHP函数封装! 150
$arr=$_POST;$sql="INSERTINTOui234_user(username,password,u_name,u_time)VALUES(?,?,?,?...
$arr=$_POST;
$sql="INSERT INTO ui234_user (username,password,u_name,u_time) VALUES (?,?,?,?)";
$mysqli=connect();
$stmt = $mysqli->prepare("{$sql}");
$stmt->bind_param('ssss',$arr['username'],$arr['password'],$arr['u_name'],$arr['u_time']);
$stmt->execute();
新手,做了一个代码,但是想封装他,查了好久的资料不会弄,高手帮忙写下!
POST过来的是一个数组,是需要插入的值。传入一个SQL语句!
类似于这样:
$arr=$_POST;
$sql="INSERT INTO ui234_user (username,password,u_name,u_time) VALUES (?,?,?,?)";
function insert($arr,$sql){
$mysqli=connect();
$stmt = $mysqli->prepare("{$sql}");
$stmt->bind_param('ssss', /* 这个位置该如何实现上面代码那样,通过传值?*/ );
$stmt->execute();
}
//添加数据方法,用我给出的代码实现,解决后再加100份,真心感谢! 展开
$sql="INSERT INTO ui234_user (username,password,u_name,u_time) VALUES (?,?,?,?)";
$mysqli=connect();
$stmt = $mysqli->prepare("{$sql}");
$stmt->bind_param('ssss',$arr['username'],$arr['password'],$arr['u_name'],$arr['u_time']);
$stmt->execute();
新手,做了一个代码,但是想封装他,查了好久的资料不会弄,高手帮忙写下!
POST过来的是一个数组,是需要插入的值。传入一个SQL语句!
类似于这样:
$arr=$_POST;
$sql="INSERT INTO ui234_user (username,password,u_name,u_time) VALUES (?,?,?,?)";
function insert($arr,$sql){
$mysqli=connect();
$stmt = $mysqli->prepare("{$sql}");
$stmt->bind_param('ssss', /* 这个位置该如何实现上面代码那样,通过传值?*/ );
$stmt->execute();
}
//添加数据方法,用我给出的代码实现,解决后再加100份,真心感谢! 展开
2个回答
展开全部
你传入的sql不应该那样传,可用性太低,函数或方法应该传入变量,或者说可变的值。上代码,不懂的问
/*封装函数*/
$arr = $_POST;
//$sql = "INSERT INTO ui234_user (username,password,u_name,u_time) VALUES (?,?,?,?)";
$table_name = "ui234_user";
$field_arr = array('username','password','u_name','u_time');
insert($arr,$table_name,$field_arr);
function insert($arr,$table_name,$field_arr){
$sql = 'INSERT INTO '.$table_name.' (';
$field_name = '';//名称
$field_value = '';//值
$field_post = '';//post取值
/*拼装字段*/
foreach ($field_arr as $key => $value) {
if($key == count($field_arr)-1){
$field_name .= $value;
$field_value.= '?';
$field_post .= '$arr["'.$field_name.'"]';
}else{
$field_name .= $value.',';
$field_value.= '?,';
$field_post .= '$arr["'.$value.'"],';
}
}
$sql .= $field_name.') VALUES ('.$field_value.');';
$mysqli=connect();
$stmt = $mysqli->prepare("{$sql}");
$exe_str = '$stmt->bind_param("ssss",'.$field_post.');';
//输出字符串结果
echo $sql.'<hr/>';
echo $exe_str;
//然后用eval执行字符串代码
eval($exe_str);//相当于是:$stmt->bind_param('ssss',$arr['username'],$arr['password'],$arr['u_name'],$arr['u_time']);
stmt->execute();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询