Как обновить базу данных mysql с помощью php foreach

Я работаю над проектом, согласно которому, когда пользователь утверждает задачу (используя варианты выбора и подтверждения переключателей), все строки базы данных с одинаковым идентификатором задачи должны быть обновлены. У каждой задачи есть подзадачи, и я хочу обновить подзадачи, а не только основную задачу. Я не уверен, как реализовать условие foreach. Вот мой код:

foreach( $_POST['task_id'] as $id) {
$ids = $id["pro_id"];
}

$update = "UPDATE tasks SET for_checking = 'no', approved = 'yes' WHERE task_id = $ids";

Я знаю, что мой код неисправен, извините за это. Я надеюсь, что кто-то может помочь мне улучшить мой код. Или кто-то скажет мне, есть ли другой способ, кроме использования foreach. Новичок студент здесь. Заранее спасибо!

-2

Решение

Что вы должны сделать, это использовать готовые заявления. При работе с пользовательским вводом ($ _POST, $ _GET) — всегда лучше использовать подготовленные операторы. Подготовленные заявления защитят вас от SQL-инъекция. Вы можете использовать mysqli библиотека, но я лично предпочитаю PDO.

Вот пример кода о том, как настроить PDO:

<?php
$pdo = new \PDO('mysql:hostname=localhost;dbname=my_db', 'user', 'password');

# we now have access to function in PDO! Happy days
# we write your SQL outside the foreach loop
$sql = 'update `table` set `field` = :value;';
# prepare your statement
$res = $pdo->prepare($sql);

# loop through data
foreach ($_POST['ids'] as $id)
{
$res->execute(array(':value' => $id));
}

# now we've done an SQL statement that's fast and safe!
4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector