Por que mysqli_real_escape_string tem um object de conexão como um primeiro parâmetro

Estou usando MYSQLI funções em PHP por um longo tempo. E sempre me pergunto o mesmo: por que a function mysqli_real_escape_string precisa da conexão no primeiro parâmetro? Não faz sentido! É apenas uma function para citações de scape.

Você sabe por quê?

mysqli_real_escape_string deve estar ciente do conjunto de caracteres da conexão para que ele possa escaping de caracteres especiais corretamente. Se você usar um conjunto de vários bytes, o mysqli deve saber. Caso contrário, uma injeção sql é possibile . Veja esta resposta para mais detalhes.

No entanto, não use isso! Use declarações preparadas !