"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso usar instruções preparadas corretamente com INSERT INTO em PHP?

Como posso usar instruções preparadas corretamente com INSERT INTO em PHP?

Publicado em 2024-12-21
Navegar:845

How Can I Properly Use Prepared Statements with INSERT INTO in PHP?

Incorporando instruções preparadas com INSERT INTO

Ao atravessar as profundezas labirínticas do PHP: Data Objects, um enigma desconcertante surge ao tentar executar o MySQL consultas usando instruções preparadas, especificamente para operações INSERT INTO. Considere o seguinte trecho de código:

$statement = $link->prepare("INSERT INTO testtable(name, lastname, age)
        VALUES('Bob','Desaunois','18')");

$statement->execute();

Apesar de aderir ao suposto método prescrito, o banco de dados permanece teimosamente desolado. Vamos explorar os elementos ausentes que impediram nosso progresso.

A chave para desbloquear o potencial das instruções preparadas para consultas INSERT INTO está na vinculação de parâmetros, uma técnica que permite a integração segura e dinâmica de valores no Instrução SQL. Isso é conseguido incorporando espaços reservados na consulta e subsequentemente fornecendo os valores correspondentes como uma matriz associativa durante a execução.

Observe o código revisado:

$statement = $link->prepare('INSERT INTO testtable (name, lastname, age)
    VALUES (:fname, :sname, :age)');

$statement->execute([
    'fname' => 'Bob',
    'sname' => 'Desaunois',
    'age' => '18',
]);

Observe a presença dos nomes dos parâmetros, ':fname', ':sname' e ':age', na consulta. Eles servem como espaços reservados para os valores reais, que são então fornecidos como uma matriz associativa na função execute().

Alternativamente, você pode utilizar o '?' sintaxe como espaços reservados e passar uma matriz de valores sem especificar os nomes dos parâmetros:

$statement = $link->prepare('INSERT INTO testtable (name, lastname, age)
    VALUES (?, ?, ?)');

$statement->execute(['Bob', 'Desaunois', '18']);

Ambas as abordagens oferecem suas respectivas vantagens e desvantagens. A utilização de parâmetros nomeados melhora a legibilidade, enquanto o '?' a sintaxe simplifica o processo de vinculação de valores. No entanto, em última análise, a escolha entre os dois é uma questão de preferência pessoal.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3