Можете что-то подсказать по-поводу кода? Вот мой исходный кодpublic function update($table_name, $pole, $value, $where){
$pole = explode(", ", $pole);
$values = explode(", ", $value);
if(count($pole) == count($values)){
for($i = 0; $i connect->prepare("UPDATE ".$this->table_name($table_name)." SET ".$que." WHERE ".htmlspecialchars($where));
$STH->execute($values);
}
else{
return false;
}
}
Подскажите, как лучше написать этот метод! Расскажите мне об моих ошибках! Мне нужно создать класс для работы с базой данных с драйвером PDO, но методы работают медленно и я не уверен в безопасности кода.

21 Авг 2019 в 07:08
165 +1
0
Ответы
1

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

Используйте подготовленные запросы для безопасности и защиты от SQL-инъекций.Не используйте htmlspecialchars для "where" условия, так как это может привести к неправильному сравнению значений.Проверяйте правильность названия полей и значений перед выполнением запроса.Разделяйте логику обновления записи и формирование запроса для более чистого и понятного кода.

Вот пример улучшенного метода:

public function update($table_name, $fields, $values, $where){
if(count($fields) != count($values)){
return false;
}
$fields_str = implode(' = ?, ', $fields) . ' = ?';
$update_query = "UPDATE " . $this->table_name($table_name) . " SET " . $fields_str . " WHERE " . $where;
try {
$STH = $this->connect->prepare($update_query);
$STH->execute($values);
return true;
} catch(PDOException $e) {
echo "Error: " . $e->getMessage();
return false;
}
}

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

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 989 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир