• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[PHP] po jakim czasie dane trafią do bazy

0 głosów
1,862 wizyt
pytanie zadane 18 sierpnia 2016 w PHP przez niezalogowany
powiedziałbym że tak jak w temacie ale cholera to już jest przegięcie. Zapytanie raz działa a raz nie. Używam najnowszej wersji XAMPP i używam nawet zapytania stworzonego w localhost/phpmyadmin/ ale to i tak nie dodaje nic do bazy, czekałem nawet 30 minut i nic a jak doda co chyba zależy od ułożenia planet, gwiazd, ciśnienia atmosferycznego, oraz tego co wczoraj było na kolacje. Co doda?? $dane to słowo. a nie powinno. Oto zapytanie:

$sql = "INSERT INTO `użytkownicy`(`ID`, `email`) VALUES (\'0\',\'$dane\')"
komentarz 18 sierpnia 2016 przez CzikaCarry Szeryf (75,340 p.)
A te ukośniki to panu po co? Null to 0/ a nie 0\
komentarz 18 sierpnia 2016 przez niezalogowany
daję to co mi wygenerowało w phpmyadmin
komentarz 18 sierpnia 2016 przez Kacper Duda Obywatel (1,970 p.)
To nie zawsze jest najlepsze rozwiązanie ;)

3 odpowiedzi

+1 głos
odpowiedź 18 sierpnia 2016 przez Kacper Duda Obywatel (1,970 p.)
wybrane 18 sierpnia 2016
 
Najlepsza

Moim zdanie to zapytanie powinno wyglądać tak:
$SQL = 'INSERT INTO uzytkownicy ("id", "email") VALUES ("0",$dane)';

Nie działa ponieważ nie można używać polskich znaków w nazwach baz, tabel i kolumn.

Zmień nazwę tabeli użytkownicy na uzytkownicy lub na users.

1
komentarz 18 sierpnia 2016 przez efiku Szeryf (75,160 p.)
Kacper, to forum uczy jednego, jak polecasz komuś coś zajebistego i w sumie standard, to on dalej brnie w starociach, nic tylko pyta gdzie kod "WKLEIĆ" ;) Możesz liczyć na to, że ktoś inny wejdzie na to pytanie i zobaczy Twoją odpowiedź i się przerzuci na PDO i zainteresuje się SQLinj i zobaczy, że jest fajne.

Ja mam nadzieję, że Ci którzy uczą podejścia z 2008 roku zdają sobie sprawę jak wielką krzywdę ludziom robią i kiedyś poniosą konsekwencję, to takie nasze Polskie błędne koło, zatrzymani w czasie. Chociaż ... ja mam zawsze nadzieję, że znajdzie się jakaś osoba, która skorzysta na odpowiedziach które tu piszę na forum ;)   

O jestem zajebistym programistą, oglądałem ten kurs, tamten, rozmowę kwalifikacyjną przeszedł, pierwszy projekt i ... co to dokumentacja? Co to Request? Jak go obsłużyć? Coo? new PDO? Woo ... composer install? twig? To wy nie piszecie w notatnikach?! + nadgodziny w domu bo trzeba nadrobić wiedzę i obadać standardy.

Takie realia.
3
komentarz 19 sierpnia 2016 przez maly Nałogowiec (37,190 p.)

...Ci którzy uczą podejścia z 2008 roku...

Problem w tym że w tamtych latach dobre praktyki i rozwiązania w zasadzie były takie same jak dzisiaj, to tylko w kursikach zawsze były i są pomijane.

Mnie zadziwia fakt że ludzie przerabiając jakieś tam kursy nie weryfikują w żaden sposób otrzymanych informacji i przyjmują ją jak prawdę objawioną.

1
komentarz 20 sierpnia 2016 przez efiku Szeryf (75,160 p.)
Nie prawda. Po prostu nie zaczął serii jak z C++ tylko od razu logowanie / jakąś gra. To nic dziwnego że nie zrozumiałes prawda ? Uwierz mi ze nie poznałeś obiektowego podejścia :)) JEŻELI MASZ ZAMIAR SIĘ UCZYĆ PHP TO PO CO CI C++. Zaczynając od manualna trafisz na te same pętle schematy itd. Później nie będzie problemu... straciłeś czas. Chcesz się uczyc php? Poszukaj tu tematów na forum bo jest ich pełno. Zobaczysz że to co masz na filmikach a co ludzie piszą to kamień milowy. Proszę Cię nie opowiadaj bzdur. ;) C++ tam to podstawy podstaw. A kurs PHP tam to nie kurs tylko rozwiązywanie kontretnego problemu metoda szkolna z lat 2008. Tyle z mojej strony.
komentarz 20 sierpnia 2016 przez efiku Szeryf (75,160 p.)
Ja obstawiam, że do obecnych standardów w tamtym kursie dojedziemy za 2 lata. Bo podejścieków dydaktyczne (w programowaniu się nie sprawdza)
komentarz 20 sierpnia 2016 przez Comandeer Guru (608,480 p.)

A czy wy też się zgadzacie z moim zdaniem ?

Nie. Powtórzę to, co powtarzałem już tutaj wielokrotnie: polecanie C++ jako wstępu do nauki technologii webowych jest JEDNĄ WIELKĄ BZDURĄ. Obiektówka w PHP jest szybciej do nauczenia na podstawie Javy a nie C++.

Inna rzecz, że tego typu rzeczy można się uczyć w języku, którego chcemy się uczyć. Brzmi jak komunał, ale trzeba to nieustannie powtarzać… Inaczej wciąż będzie powtarzany mit, że do PHP potrzebne jest C++. Nie, nie jest. Nie jest, nie jest i jeszcze raz nie jest.

Do JS też nie jest potrzebny (ba, wręcz przeszkadza). Do Ruby, Pythona, Javy, Haskella, Erlanga, Malbolge'a, Go, ARNOLDC też nie jest. C++ jest potrzebny do… C++. Po prostu.

0 głosów
odpowiedź 18 sierpnia 2016 przez Ehlert Ekspert (215,210 p.)
Takie są efekty łączenia zmiennych php z kwerendami SQL.
komentarz 18 sierpnia 2016 przez niezalogowany
to jak zrobić to poprawnie??
komentarz 18 sierpnia 2016 przez CzikaCarry Szeryf (75,340 p.)
Binduj paramerty.
komentarz 18 sierpnia 2016 przez niezalogowany
możesz jaśniej??
0 głosów
odpowiedź 18 sierpnia 2016 przez Vento Pasjonat (17,120 p.)

Po pierwsze dane do łączenia się z bazą danych trzyma się w jednym pliku a później tylko podkleja, aby w razie zmiany danych do połączenia trzeba z edytować tylko jeden plik z danymi do połączenia a nie każdą stronę, plik etc.

Stwórz plik np. connect.php w którym będą zawarte dane do połączenia

<?php

$host = "localhost"; 
$dbname = "subskrybenci";
$port = "3306";
$username = "root";
$password = "";

 

Później podpinasz ten plik za pomocą require_once  

http://php.net/manual/en/function.require-once.php

 

Następna rzecz, to naucz się korzystać z PDO, bo jest to najbezpieczniejszy system. 

Oficjalna dokumentacja:

http://php.net/manual/en/ref.pdo-mysql.php

Wersja Polska:

https://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO

 

W Twoim przypadku połączenia jak i zapytanie z bazą danych w PDO powinno wyglądać tak (z założeniem, że podepniesz wcześniej podany przeze mnie plik connect.php)

 

<?php

session_start();
require_once('connect.php');
if(isset($_POST['email']))
{
    try
    {
        $pdo = new PDO('mysql:host='.$host.';dbname='.$dbname.';port='.$port, $username, $password );
        $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $pdo -> query ('SET NAMES utf8');

        $SQL = "INSERT INTO uzytkownicy ('email') VALUES (:email)";
        $prepare = array(":email" => $_POST['email']);

        $stmt = $pdo -> prepare($SQL);
        $stmt -> execute($prepare);
        echo "Dziękujemy za dokonanie subskrybcji.";
    }
    catch(PDOException $e)
    {
        echo "Dziękujemy za dokonanie subskrybcji.";
        // echo $e->getMessage(); za pomoca getMessage mozesz wyswietlic blad. pamietaj ze obecnie jest to komentarz 
    }
}

?>

 

3
komentarz 18 sierpnia 2016 przez Comandeer Guru (608,480 p.)

Po pierwsze dane do łączenia się z bazą danych trzyma się w jednym pliku a później tylko podkleja, aby w razie zmiany danych do połączenia trzeba z edytować tylko jeden plik z danymi do połączenia a nie każdą stronę, plik etc.

Wgl się nie trzyma w pliku ;) Hint: zmienne środowiskowe. 

komentarz 19 sierpnia 2016 przez maly Nałogowiec (37,190 p.)

Konfigurację dla całej aplikacji można mieć w pliku .php ale raczej jako tablicę a nie zwykłe zmienne w globalnej przestrzeni, coś w ten deseń:

<php
return [
	'db' => [
		'host' => 'localhost' 
		,'dbname' => 'subskrybenci'
		,'port' => 3306
		,'username' => 'root'
		,'password' => ''	
	]
];

Poza tym jest JSON, YAML, XML.

1
komentarz 19 sierpnia 2016 przez Comandeer Guru (608,480 p.)

A tak w sumie teraz patrzę:

Następna rzecz, to naucz się korzystać z PDO, bo jest to najbezpieczniejszy system. 

Nie, nie jest. Obsługa prepared statements jest też w mysqli (co prawda maksymalnie udziwniona, ale jest). Ba, PDO w domyślnej konfiguracji jest o wiele mniej bezpieczny niż mysqli, bo domyślnie jedynie symuluje prepared statements. 

Podobne pytania

0 głosów
1 odpowiedź 467 wizyt
0 głosów
0 odpowiedzi 2,631 wizyt
pytanie zadane 28 października 2017 w PHP przez Undisputed Gaduła (3,040 p.)
0 głosów
0 odpowiedzi 330 wizyt
pytanie zadane 14 maja 2016 w PHP przez Headhunter Gaduła (4,450 p.)

93,753 zapytań

142,713 odpowiedzi

323,356 komentarzy

63,348 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...