15-4. 论坛系统-数据入库之前进行转义(使用递归函数对n维数组转义)

本文介绍了一种在PHP中处理特殊字符的方法,通过使用mysqli_real_escape_string函数来转义字符串,确保数据能正确地存储到数据库中。同时,提供了一个自定义函数用于处理数组类型的转义需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

$link=connect();

/*下面的字符串里面有杂乱的单、双引号,传入数据库之前需要转义,不然会报错*/
$a=<<<STRING
dnwo''e'dn"o"we
STRING;

/*这个函数只能转义字符串不能转义数组类型数据
 *要想转义数组我们下面自己写个函数
 */
$a=mysqli_real_escape_string($link,$a);
$query="insert into js_father_module(module_name) values('{$a}')";
echo $query;
var_dump(execute($link, $query));
/* 数据入库之前进行转义,确保数据能够顺利入库,但下面写的函数只能转义一维数组数据*/
function escape($link,$data){
    if(is_string($data)){
        return mysqli_real_escape_string($link, $data);
    }
    if (is_array($data)){
        foreach ($data as $key=>$val){
            /*要是转义的是多维数组数据,只要用递归思想即可,把下面
             *mysqli_real_escape_string改成escape即可,也就是自己调用自己
             */
            $data[$key]=mysqli_real_escape_string($link, $val);
        }
    }
    return $data;
}


/*写个自定义函数用于转义下面的数组数据*/
$a=<<<STRING
dnwo''e'dn"o"we
STRING;
$b=<<<STRING
dn'eeeq''wqwq'"qw'wq
STRING;
$c=<<<STRING
dn''eewe''q""ewe"qe
STRING;
$d=<<<STRING
qedq''wqq""qq"dd''qq
STRING;

$data=array(
    0=>$a,
    1=>$b,
    2=>$c,
    3=>$d
);

var_dump(escape($link,$data));

/*多维数组的情况*/
$data=array(
    0=>$a,
    1=>array(0=>$b,1=>$c),
    2=>'22222"33"2222',
    3=>'333"22"22',
    4=>array(
        0=>'4_0"',
        1=>'4_111',
        2=>array('adbwd','wdqqd','qdq')
    )
)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值