[PHP][MySQL]Kilka prostych pytań o PDO, html do bazy |
[PHP][MySQL]Kilka prostych pytań o PDO, html do bazy |
30.11.2014, 20:20:55
Post
#1
|
|
Grupa: Zarejestrowani Postów: 824 Pomógł: 106 Dołączył: 14.03.2012 Skąd: Warszawa Ostrzeżenie: (0%) |
Witajcie, od wczoraj skubnąłem w końcu mySQLa czyli koniec z plikami, metoda prób i błędów, używam PDO oraz phpmyadmin potrzebuję kilku wyjaśnień bo kazdy robi po swojemu i nie wiadomo z kogo brac przykład
1. Prepare powinienem stosować podczas kazdego rodzaju operacji: INSERT, UPDATE czy również SELECT? 2. Bindowanie robimy tylko przy INSERT, czy równiez UPDATE? 3. Dlaczego nie moge ustawic wlasciwosci Dlugosc/Wartosci w phpmyadmin (nic sie nie zmienia) dla TEXT a dla VARCHAR moge? 4. Czy prawda: Jak robie zapytanie tylko przez exec to mi liczy rekordy, jak zamiast tego zrobie prepere i execute to zeby policzyc musze zrobic fetch_all? czy jest jakis inny sposob? 5. Jak wrzucać HTML do bazy i go wyciągać, obecnie robie najpierw htmlspecialchars a potem przy odbiorze decode, wiem ze real_escape nie stosuje sie w PDO czy zamiast tego robic prepare? i co wtedy przy wyciaganiu i wyswietlaniu i czy to konieczne najchetniej wrzucalbym to w czystej postaci ale sypało mi bledy chyba przez cudzysłowia 6. Co mogło być zasadniczą przyczyną że ucinało mi string wrzucany do bazy gdy wsytąpił w nim znak niezakodowany w utf-8? Wybierajcie sobie pytania jak nie chce wam sie czytac calosci, bede wdzieczny -------------------- |
|
|
30.11.2014, 20:31:26
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa |
3. podstawy sql, masz w manualu...
4. fetchColumn() 5. htmlspecialchars dajesz w widoku, nie przed zapisem do bazy. W prepare dajesz sql bez danych od usera, zastępujesz je ? lub :nazwa. Dane od usera dajesz np w execute($tablica). |
|
|
30.11.2014, 20:38:55
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
1. Każdego zapytania, które otrzymuje parametry z zewnątrz bądź jest wykonywane wielokrotnie. Generalnie: zawsze.
2. Zawsze, gdy masz coś do przekazania z zewnątrz - czyli: ze zmiennej. 3. Kolumna typu TEXT nie ma po prostu czegoś takiego. Do poczytania: http://dev.mysql.com/doc/refman/5.7/en/string-types.html 4. Wszystko masz w dokumentacji: http://php.net/manual/en/pdo.exec.php#refs...ec-returnvalues 5. htmlspecialchars używa się przed wyświetleniem czegoś w dokumencie HTML. Dla bazy danych znaki typu < czy & nie mają żadnego znaczenia. 6. Jeżeli masz nieprawidłową sekwencję w UTF-8 baza może zareagować na to błędem bądź "ucięciem" danych - trzeba by sprawdzić w dokumentacji. Ale podejrzewam, że masz tutaj coś innego na myśli - opisz dokładniej. |
|
|
1.12.2014, 16:10:32
Post
#4
|
|
Grupa: Zarejestrowani Postów: 824 Pomógł: 106 Dołączył: 14.03.2012 Skąd: Warszawa Ostrzeżenie: (0%) |
Spawnm, masz na mysli bindowanie lub obróbkę?
W tym przypadku dane pochodza od user-admina dostep po zalogowaniu bez mozliwosci rejestracji, ale na pewno bede w przyszlosci musial je zabezpieczać. Crozin Co do punktu 5 pogmatwałem SQL injection z HTML injection, wnioski robić prepere zeby uchronic sie przed tym 1 Punkt 6: Ogólnie namieszałem: plik utf-8 wrzucilem na ftp potem w dedykowanym tam edytorze ftp coś dokleiłem z polskimi znakami, skonwertowało mi do asci(?!-html number) wszystko oprócz: ó, potem skopiowałem to do notepad++ zedytowałem i zmieniłem kodowanie na utf8 wtedy te ó zamieniły mi się na jakieś hexy(?!) no i potem pobranego htmla z takiego pliku próbowałem w ramach ćwiczeń wrzucac do bazy i dopóki nie zrobiłem htmlspecialchars były błędy, a potem po za to szło ale ucinało. Wniosek: nie musze robic htmlspeciachars problemu juz nie powinienem mieć tylko musze sie trzymac notepada Dziekuję za odp czuje sie o wiele madrzejszy -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 05:48 |