«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как правильно использовать подготовленные операторы с INSERT INTO в PHP?

Как правильно использовать подготовленные операторы с INSERT INTO в PHP?

Опубликовано 21 декабря 2024 г.
Просматривать:257

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

Включение подготовленных операторов с помощью INSERT INTO

При прохождении лабиринтных глубин PHP: объекты данных при попытке выполнить MySQL возникает непростая загадка. запросы с использованием подготовленных операторов, особенно для операций INSERT INTO. Рассмотрим следующий фрагмент кода:

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

$statement->execute();

Несмотря на соблюдение предполагаемого предписанного метода, база данных упорно остается заброшенной. Давайте рассмотрим недостающие элементы, которые мешают нашему прогрессу.

Ключ к раскрытию потенциала подготовленных операторов для запросов INSERT INTO заключается в привязке параметров, методе, который позволяет безопасно и динамично интегрировать значения в SQL-заявление. Это достигается за счет включения заполнителей в запрос и последующего предоставления соответствующих значений в виде ассоциативного массива во время выполнения.

Следуйте за измененным кодом:

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

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

Обратите внимание на наличие имен параметров «:fname», «:sname» и «:age» в запросе. Они служат заполнителями для фактических значений, которые затем предоставляются в виде ассоциативного массива в функции выполнения().

В качестве альтернативы вы можете использовать символ '?' синтаксис в качестве заполнителей и передать массив значений без указания имен параметров:

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

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

Оба подхода имеют свои преимущества и недостатки. Использование именованных параметров повышает читабельность, а знак '?' синтаксис упрощает процесс привязки значений. Однако в конечном итоге выбор между ними является вопросом личных предпочтений.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3