Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawnie rekordu do bazy PDO
Forum PHP.pl > Forum > PHP
lukas69
Witam,
mam taki problem a mianowicie kiedy dodaje rekord do bazy w którym znajduje się sam text jest wszystko dobrze, problem pojawia się kiedy w przesyłanym teście są znaczniki html wtedy rekord się nie dodaje. Korzystam z PDO poniżej mam kod dodawania rekordu.

Kod
        $add = $connect->exec('INSERT INTO news (tytul, krotka, dluga, data_od, data_do, status, zdjecie, id_galerii) VALUES(
                            "'.$this->getTitle().'",
                            "'.$this->getMsgShort().'",
                            "'.$this->getMsgLong().'",
                            "'.$this->getDateFrom().'",
                            "'.$this->getDateTo().'",
                            "'.$this->getStatus().'",
                            "'.$this->getPhotoMsg().'",
                            "'.$this->getMsgIdGallery().'"
                            )');
nospor
Skoro korzystasz z PDO, to rób to właściwie a Twój problem zniknie.

Chodzi o BINDOWANIE - korzystaj z tego - to jest właśnie jedna z zalet używania PDO. Używanie PDO bez bindowanie jest jakimś nie porozumieniem
lukas69
Jakbyś mógł zobaczyć czy tak może być zrobiłem to z bindowaniem jak pisałeś, teraz mi to działa z tym że nie wiem czemu przedtem nie chciało a teraz działa. Dziękuje za pomoc smile.gif

Kod
$add = $connect->prepare('INSERT INTO news (tytul, krotka, dluga, data_od, data_do, status, zdjecie, id_galerii) VALUES(
                                        :tytul,
                                        :krotka,
                                        :dluga,
                                        :data_od,
                                        :data_do,
                                        :status,
                                        :zdjecie,
                                        :id_galerii)');
                            $add->bindValue(':tytul',$this->getTitle(),PDO::PARAM_STR);
                            $add->bindValue(':krotka',$this->getMsgShort(),PDO::PARAM_STR);
                            $add->bindValue(':dluga',$this->getMsgLong(),PDO::PARAM_STR);
                            $add->bindValue(':data_od',$this->getDateFrom(),PDO::PARAM_STR);
                            $add->bindValue(':data_do',$this->getDateTo(),PDO::PARAM_STR);
                            $add->bindValue(':status',$this->getStatus(),PDO::PARAM_STR);
                            $add->bindValue(':zdjecie',$this->getPhotoMsg(),PDO::PARAM_STR);
                            $add->bindValue(':id_galerii',$this->getMsgIdGallery(),PDO::PARAM_STR);
                            $ilosc = $add -> execute();
                        if ($ilosc > 0 ) {
                            return true;
                        } else {
                            return false;
                        }
nospor
1) Zacznij uzywac poprawnego bbcode. DLa kodu php jest to bbcode PHP a nie CODE

2) Tak, teraz poprawnie

3) Wcześniej ci nie działało, bo wkładałeś teksty z cudzysłowami, które łamały ci zapytanie. Bindowanie rozwiązuje ten problem.
lukas69
oki będę pamiętać na przyszłość a zapytanie do UPDATE mogę zrobić w ten sam sposób ?
nospor
Nie możesz.... musisz. PDO = bindowanie

Zanim zadasz kolejne pytanie: SELECT też musisz bindowac.
!*!
lukas69 - http://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO
lukas69
Dobrze to zabieram się do pracy dziekuje raz jeszcze i pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.