使用mysqli_real_escape_string
在PHP
我想存储的文字:
tesing%2Bsmaple%2Bid
然后我使用方法:
$id = mysqli_real_escape_string($con, $query['ID']);
echo $id;
文字改为:
tesing+smaple+id
为什么文字会改变,如果我不想让它自动转换,我该怎么办?
请帮忙
答案 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;