网站首页 > 文章中心 > 其它

php数据验证封装

作者:小编 更新时间:2023-08-11 15:34:50 浏览量:377人看过

PHP函数封装!

你传入的sql不应该那样传,可用性太低,函数或方法应该传入变量,或者说可变的值.上代码,不懂的问

/*封装函数*/

php数据验证封装-图1

$arr?=?$_POST;

$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;

php数据验证封装-图2

$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();

求PHP数据库封装类操作代码

php

class MySQL{

private $host; //服务器地址

private $name; //登录账号

private $pwd; //登录密码

private $dBase; //数据库名称

private $conn; //数据库链接资源

private $result; //结果集

private $msg; //返回结果

private $fields;//返回字段

private $fieldsNum; //返回字段数

private $rowsNum; //返回结果数

private $rowsRst; //返回单条记录的字段数组

private $filesArray = array();//返回字段数组

private $rowsArray = array();//返回结果数组

private $query_count=0; //查询结果次数

static private $_instance; //存储对象

//初始化类

private function __construct($host='',$name='',$pwd='',$dBase=''){

if($host != '') $this-host = $host;

if($name != '') $this-name = $name;

if($pwd != '') $this-pwd = $pwd;

if($dBase != '') $this-dBase = $dBase;

$this-init_conn();

//防止被克隆

private function __clone(){}

public static function getInstance($host='',$name='',$pwd='',$dBase=''){

if(FALSE == (self::$_instance instanceof self)){

self::$_instance = new self($host,$name,$pwd,$dBase);

return self::$_instance;

public function __set($name,$value){

$this-$name=$value;

public function __get($name){

return $this-$name;

//链接数据库

function init_conn(){

@mysql_select_db($this-dBase,$this-conn) or die('select db fail !');

mysql_query("set names ".$this-charset);

//查询结果

function mysql_query_rst($sql){

if($this-conn == '') $this-init_conn();

$this-result = @mysql_query($sql,$this-conn);

$this-query_count++;

//取得字段数

function getFieldsNum($sql){

$this-mysql_query_rst($sql);

$this-fieldsNum = @mysql_num_fields($this-result);

//取得查询结果数

function getRowsNum($sql){

if(mysql_errno() == 0){

return @mysql_num_rows($this-result);

return '';

//取得记录数组(单条记录)

function getRowsRst($sql,$type=MYSQL_BOTH){

if(empty($this-result)) return '';

if(mysql_error() == 0){

$this-rowsRst = mysql_fetch_array($this-result,$type);

return $this-rowsRst;

//取得记录数组(多条记录)

function getRowsArray($sql,$type=MYSQL_BOTH){

!empty($this-rowsArray) ? $this-rowsArray=array() : '';

while($row = mysql_fetch_array($this-result,$type)) {

$this-rowsArray[] = $row;

return $this-rowsArray;

//更新、删除、添加记录数

function uidRst($sql){

if($this-conn == ''){

@mysql_query($sql);

$this-rowsNum = @mysql_affected_rows();

return $this-rowsNum;

//返回最近插入的一条数据库的id值

function returnRstId($sql){

return mysql_insert_id();

//获取对应的字段值

function getFields($sql,$fields){

if(mysql_num_rows($this-result) 0){

$tmpfld = @mysql_fetch_row($this-result);

$this-fields = $tmpfld[$fields];

return $this-fields;

//错误信息

function msg_error(){

if(mysql_errno() != 0) {

$this-msg = mysql_error();

return $this-msg;

//释放结果集

function close_rst(){

mysql_free_result($this-result);

$this-msg = '';

$this-fieldsNum = 0;

$this-rowsNum = 0;

$this-filesArray = '';

$this-rowsArray = '';

//关闭数据库

php数据验证封装-图3

function close_conn(){

$this-close_rst();

mysql_close($this-conn);

$this-conn = '';

//取得数据库版本

function db_version() {

return mysql_get_server_info();

什么是php中的封装

封装是php面向对象的其中一个特性,将多个可重复使用的函数封装到一个类里面.在使用时直接实例化该类的某一个方法,获得需要的数据

如果是私有的方法和属性值,外部无法访问,具有一定的保护作用.

面向对象之封装 例子

class A{

public $name = '老王';

// protected $name = '老王';

//private $name = '老王';

//自己访问

public function saya(){

return $this-name;

//实例化对象

$b = new A;

//public:外部、家族、自己都可以访问

//protected:家族和自己都可以访问,外部无法访问

//private:自己可以访问,外部和家族都无法访问

echo '外部访问:'.$b-name.'br'; //如果是私有的,访问不了

echo '家族访问:'.$b-sayb().'br';

echo '自己访问:'.$b-saya().'br';

以上就是土嘎嘎小编为大家整理的php数据验证封装相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章