@Banny_Boom

Не работает PDO, где ошибка, 42P08?

Prepare - "UPDATE public.users SET id=:id, surname=:surname WHERE surname=:surname"
Bind - array(":surname"=>"filipov", ":id"=>18) - пробовал и без : вначале

Ошибка:
SQLSTATE[42P08]: Ambiguous parameter: 7 ERROR: inconsistent types deduced for parameter $2 LINE 1: UPDATE public.users SET id=$1, surname=$2 WHERE surname=$2 ^ DETAIL: text versus character varying

Тип данных верный...
Но в чем ошибка понять не могу.. помогите пожалуйста
  • Вопрос задан
  • 1011 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
PostgreSQL не может определить тип параметра, поскольку он используется дважды - в SET и во WHERE. Задайте его тип принудительно
UPDATE `public`.`users`
    SET `id` = :id, `surname` = :surname::varchar(20) 
    WHERE `surname` = :surname::varchar(20)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы