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.
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