Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

mysqli_real_escape_string

Olá, boa tarde , minha dúvida é a seguinte vim do curso de "Curso PHP e MySQL II Cookies, sessões e mais recursos" para o "Curso PHP I: Orientação a objetos com sua linguagem preferida" e no primeiro curso samos a função :

function insereProduto($conexao, $nome, $preco, $descricao, $categoria_id, $usado) {
    $nome = mysqli_real_escape_string($conexao, $nome);
    $descricao = mysqli_real_escape_string($conexao, $descricao);
    $query = "insert into produtos (nome, preco, descricao, categoria_id, usado)
        values ('{$nome}', {$preco}, '{$descricao}', {$categoria_id}, {$usado})";
    return mysqli_query($conexao, $query);
}

e no novo curso foi apresentada a mesma função sem as seguintes linhas:

$nome = mysqli_real_escape_string($conexao, $nome);
$descricao = mysqli_real_escape_string($conexao, $descricao);

e funcionou do mesmo jeito, eu gostaria de saber qual a funcionalidade dessas linhas e quando devo usar-las? desde já, mt obg!

1 resposta
solução!

Olá Vítor!

A função mysqli_real_scape_string() serve para limpar a string que, no caso, será enviada ao banco de dados. Essa função ajuda na prevenção de SQL Injection, pois não deixa que alguns caracteres como \n, ', ", entre outros qubrem sua query ou mesmo cheguem no seu BD e assim cause algum estrago.

Mais para frente na formação de PHP tem um curso sobre PHP e MySQL II, que abordará um pouco mais sobre o assunto: https://cursos.alura.com.br/course/php-mysql-e-fundamentos-da-web-parte-2

Caso queira saber um pouco mais sobre o assunto de SQL Injection, segue o link do manual do PHP que traz outros exemplos sobre o assunto: https://secure.php.net/manual/pt_BR/security.database.sql-injection.php