【发布时间】:2011-03-29 11:32:12
【问题描述】:
在将数据放入数据库之前,我将其传递给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 调用,则不会进行第二次插入
【问题讨论】:
-
复制是什么意思?从一个表中提取并通过 SQL 将其插入到另一个表中?
-
在这种情况下,您需要再次申请
mysql_real_escape_string,因为从数据库中检索到的数据将没有正确的转义序列。
标签: php mysql database escaping