Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Не работает UPDATE в PDO
static function updateDownloadSearchlist($namelist){
try{
$db=new PDO("sqlite:database/database.db");
$sql='UPDATE searchlist SET download = "download" WHERE namelist = :namelist';
$st=$db->prepare($sql);
$st->bindParam(':namelist',$namelist);
$st->execute();
}
catch(PDOException $e){
echo$e->getMessage();
}
}
Но не обновляются поля Главное SELECT и INSERT работают. А вот UPDATE почему-то нет (((
Единственное, что поле namelist в базе имеет DEFAULT значение, но вроде для SQL это не очень важно и его можно спокойно переопределять.
Мелкий
Отправлено: 23 Сентября, 2014 - 19:40:01
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Проверьте, что вы в метод передаёте. Не что вы думаете, что передаёте, а что передаёте на самом деле.
----- PostgreSQL DBA
razorg1991
Отправлено: 23 Сентября, 2014 - 20:14:57
Частый гость
Покинул форум
Сообщений всего: 131
Дата рег-ции: Сент. 2013
Помог: 0 раз(а)
Мелкий пишет:
Проверьте, что вы в метод передаёте. Не что вы думаете, что передаёте, а что передаёте на самом деле.
Выдает string(10) "htc one 21"
В таблице в принципе поле имеет тип TEXT, скопировал: htc one 21
Т.е. никаких даже лишних пробелов нет.
Куда копать дальше?
Щас переписал обновление по id и сделал еще приведение типов, одни хрен не работает! Что за бред?
UPDATE searchlist SET download ="download"WHERE id = :id
Любое значение НЕОБХОДИМО БИНДИТЬ, причем биндить ТОЛЬКО ЧЕРЕЗ ПЕРЕМЕННУЮ, иначе так он тоже не работает!
Уж сильно намудрили с безопасностью запросов.
ЕДИНСТВЕННО ПРАВИЛЬНЫЙ ВАРИАНТ ТАКОЙ:
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.