Лучший способ написать инструкцию PHP SQL Update

У меня есть это заявление PHP SQL:

$updateCategory = "UPDATE category SET name=".$name.", description=".$description.", parent=".$parent.", active=".$active." WHERE id=".$catID.""; 

Каков наилучший способ написать это?

Благодаря,

Крис.

Related of "Лучший способ написать инструкцию PHP SQL Update"

Я предлагаю вам использовать подготовленные инструкции, а не объединять строку запроса вместе:

 $sql = 'UPDATE category SET name=:name, description=:description, parent=:parent, active=:active WHERE id=:catID'; 

если вы используете PDO , который я настоятельно рекомендую, вы бы назвали его следующим образом:

 $params = array( ':name' => $name, ':description' => $description, ':parent' => $parent, ':active' => $active, ':catID' => $catID ); $stmt = $pdo->prepare($sql); $stmt->execute($params); 

Вы можете спросить: «Почему все эти хлопоты?» Преимущества такого подхода весьма ошеломляющие:

  • Вам не нужно заботиться о SQL-инъекции, поскольку драйвер базы данных теперь обрабатывает правильное преобразование входных параметров
  • Вам не нужно заботиться об ускорении специальных символов, но вы можете сосредоточиться на том, чего хотите достичь, а не на том, как его достичь 🙂

Вы можете форматировать его так, чтобы сделать его более читаемым.

 $updateCategory = " UPDATE category SET `name` = '" . $name . "', `description` = '" . $description . "', `parent` = '" . $parent . "', `active` = '" . $active . "' WHERE `id` = '" . $catID . "'"; 

Я нахожу, что конкатенация запросов вызывает у меня серьезные головные боли с синтаксическими ошибками – все эти кавычки и точки разбрызгиваются, как перец. Вот как я напишу запрос:

 $updateCategory = " UPDATE category SET catname = '$name', description = '$description', parent = '$parent', active = '$active' WHERE id = '$catID'"; 

Обратите внимание, что «имя» является зарезервированным словом и не должно использоваться в качестве имени столбца. Также, если id является целым числом, $ catID не нужно указывать.

Можешь попробовать:

$update = "update table_name SET name = '$name', email = '$email', password = '$password', phoneno = '$phoneno' WHERE id = '$id'";