如何使用mysqli_real_escape_string转换特殊字符

时间:2014-09-23 06:30:33

标签: php mysqli

使用mysqli_real_escape_stringPHP

中存储文字时遇到问题

我想存储的文字:

tesing%2Bsmaple%2Bid

然后我使用方法:

$id = mysqli_real_escape_string($con, $query['ID']);
echo $id;

文字改为:

tesing+smaple+id

为什么文字会改变,如果我不想让它自动转换,我该怎么办?

请帮忙

2 个答案:

答案 0 :(得分:0)

htmlspecialchars将HTML中具有特殊含义的字符转换为实体。如果您要将某些文本插入到HTML文档中(因为它会停止,例如,<被视为标记的开头,并防止XSS),这是必不可少的。

mysql_real_escape_string将MySQL SQL查询中具有特殊含义的字符转换为转义符。这允许您安全地将任意字符串插入MySQL数据库(防止错误和注入。但是,有更好的方法来做同样的事情。

试试这个:

$id = mysql_real_escape_string(htmlspecialchars($query['ID']));
echo $id;

答案 1 :(得分:0)

最好的方法是base64_encode()存储前的值和base64_decode()从数据库中提取时的值。你不会丢失任何信息:)

<?php
$myvar = "tesing%2Bsmaple%2Bid";
$vartostore = base64_encode($myvar);
echo $vartostore;
$varfromdb = base64_decode($vartostore);
echo $varfromdb;
相关问题