Я создаю запрос SQL UPDATE для добавления строкового значения, используя только NAMED PLACEHOLDERS к уже существующему значению в db. пожалуйста, предложите необходимые изменения в приведенном ниже коде для работы или предложите, как использовать именованные заполнители в синтаксисе обновления concat
$name = "Lastname";
$stmt = $conn->prepare("UPDATE users SET name= name + :name WHERE id=:id");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':id', $id);
$stmt->execute();
Ожидаемый результат:
До: Таблица имеет значение столбца «имя» «Имя».
После выполнения кода: значение столбца 'name' «FirstnameLastname»
Вы не говорите, какую СУБД вы используете. Дубль, который я выбрал, был для MySQL, но другие базы данных используют другой синтаксис.






+ не является обычным способом объединения строк в SQL. Стандартный оператор — ||, а функция concat() обычно доступна:
UPDATE users
SET name = CONCAT(name, :name)
WHERE id = :id;
Спасибо за ответ. Оно работает. что, если значение имени является целым числом, и я хочу, чтобы вывод был похож на 1 + 1, т.е. 2
@Саши. . . Если вы хотите дополнение, то используйте +. Однако числовой тип данных для столбца с именем name был бы необычным.
Возможный дубликат Конкатенация строк в MySQL