我是否需要转义每个字符串以及转义字符串的最大长度是多少?

Do I need to escape every string and what is the maximum length of an escaped string?

我正在尝试使用 SQL 在我的数据库中存储随机生成的盐。我使用这行代码在 php 中生成了这种盐:

$salt = mysqli_real_escape_string($this->connection, mcrypt_create_iv(256, MCRYPT_DEV_URANDOM));

据我所知,所有字符串都必须转义,无论它们是否来自用户输入,因为我的随机盐也可能具有干扰 SQL 的特殊字符,无论它们是否是故意恶意的?据我所知,要转义字符串 PHP 需要添加额外的字符,从而增加字符串的长度。我想知道 post 转义字符串的最大长度是多少?是不是每个侵权字符只加一个字符,所以我的256个字符串最大长度是512?

谢谢

别逃。请改用 bind parameters

除此之外,重要的是未转义值的大小。转义只是为了让解析器可以安全地读取字符串。实际的字符串值仍然是相同的大小(并且将由 MySQL 引擎以未转义的形式处理)。转义只是一种在查询中安全嵌入值的方法。