![]() |
![]() ![]() |
![]() |
![]() ![]()
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 ![]() -------------------- |
|
|
![]()
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). |
|
|
![]()
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. |
|
|
![]() ![]()
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 ![]() -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 05:28 |