在将数据放入数据库之前,我会通过 mysql_real_escape_string
传递数据。
如果我想将相同的数据复制到另一个表中,在复制之前是否需要再次通过 mysql_real_escape_string
传递它?
我写了一个小脚本来测试这个问题,看起来答案是肯定的:
$db = new AQLDatabase();
$db->connect();
$title = "imran's color";
$title = mysql_real_escape_string($title);
$sql = "insert into tags (title, color) values ('".$title."','@32324')";
$db->executeSQL($sql);
$sql = "select * from tags where color = '@32324' ";
$result = $db->executeSQL($sql);
while($row= mysql_fetch_array($result))
{
$new_title = $row['title'];
}
$new_title = mysql_real_escape_string($new_title);
$sql = "insert into tags (title, color) values ('".$new_title."','DDDDD')";
$db->executeSQL($sql);
注意:如果我删除第二个 mysql_real_escape_string
调用,则第二次插入将不会发生
最佳答案
正在做这样的事情吗?
- 将 mysql_real_escape_string($bla) 保存到数据库
- 从数据库中获取$bla
- 再次保存$bla(在另一个表中..)
从数据库中获取 $bla 将会“取消转义”它,因此它可能再次成为有害字符串。保存时一定要再次转义。
关于php - 如果复制数据,再次mysql_real_escape_string?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5471814/