Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Problem z wpisaniem danych do bazy
Dukov
post
Post #1





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 21.03.2017

Ostrzeżenie: (0%)
-----


Mam pewien problem, napisałem sobie kod php z zapytaniem MySQL, tylko, że nie działa. Znaczy działa ale nie tak jak ja chcę.
  1. <?php
  2. $host = 'host';
  3. $base = 'baza';
  4. $baseuser = 'user';
  5. $basepass = 'haslo';
  6.  
  7. if ($db_lnk = mysqli_connect($host, $baseuser, $basepass, $base)){
  8. $test = "wpis";
  9. $query="INSERT INTO webexamples VALUES ('$wpis')";
  10. if (mysqli_query($db_lnk, $query)){
  11. echo "wpisano";
  12. }
  13. else
  14. {
  15. echo "nie wpisane";
  16. }
  17. }
  18. else
  19. {
  20. echo "brak połączenia";
  21. }
  22. $db_lnk -> close();
  23.  
  24. ?>


Cały czas przy
  1. if (mysqli_query($db_lnk, $query)){
  2. echo "wpisano";
  3. }
  4. else
  5. {
  6. echo "nie wpisane";
  7. }

Wyskakuje nie wpisano, nie wiem dlaczego ten warunek przyjmuje wartość false. Wcześniej zczytywałem zmienne z formularza ale teraz to uprościłem, żeby nie mieszać niepotrzebnie. Jak to zapytanie będzie działac, to będę zczytywał z _POST
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Ciapki i łączenie ciągów już nie obowiązuje?


--------------------
Go to the top of the page
+Quote Post
Dukov
post
Post #3





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 21.03.2017

Ostrzeżenie: (0%)
-----


  1. $query="INSERT INTO webexamples VALUES (";
  2. $query.="3";
  3. $query.=")";



Jeszcze trochę to uprościłem - jest dokładnie to samo.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Dla tego że nie podałeś jakie kolumny pakujesz, ergo MySQL oczekuje w VALUES że podasz dane dla WSZYSTKICH kolumn z tabeli....
Go to the top of the page
+Quote Post
Dukov
post
Post #5





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 21.03.2017

Ostrzeżenie: (0%)
-----


Tzn. jak mam podac kolumny? Myślałem, że po VALUES będzie wpisywał po kolei, też tak zmieniłem, mam 4 kolumny
  1. if ($db_lnk = mysqli_connect($host, $baseuser, $basepass, $base)){
  2.  
  3. $query="INSERT INTO webexamples VALUES (";
  4. $query.="3,'test','test1','test2'";
  5. $query.=")";


Efekt ciągle ten sam, pierwszą mam kolumnę ID jako integer, potem mam 3 kolumny jako TINYTEXT.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Zamiast nic nie mowiacego
echo "nie wpisane";

Wyswietl blad bazy danych a wszystko bedzie jasne...
echo mysqli_error($db_lnk);


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Dukov
post
Post #7





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 21.03.2017

Ostrzeżenie: (0%)
-----


Z powyższymi sobie poradziłem idealnie dzięki Waszej pomocy, natomiast mam problem z tym:

  1. $query="INSERT INTO webexamples VALUES (";
  2. $query.="5, $_POST['title'], '$test1', 'dtest','test2'";
  3. $query.=")";


Znowu się zawiesiłem, chodzi o tę nieszczęsną tablice _POST

A tu jest błąd
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in /home/dukov/ftp/testphp/sendscript.php on line 11

Ktoś pomoże?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


{$_POST['title']}
Go to the top of the page
+Quote Post
Dukov
post
Post #9





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 21.03.2017

Ostrzeżenie: (0%)
-----


O już coś do przodu ale natknąłem się na kolejny problem, wartość zamiast jako wartość traktuje jako nazwę kolumny

  1. if ($db_lnk = mysqli_connect($host, $baseuser, $basepass, $base)){
  2. $test = 4;
  3. $test1 ='test';
  4. $query="INSERT INTO webexamples VALUES (";
  5. $query.="5, {$_POST['title']} , '$test1', 'dtest','test2'";
  6. $query.=")";


Tak to przepisałem, a wyświetla taki błąd:

Unknowncolumn 'wpis' in 'field list'
Go to the top of the page
+Quote Post
casperii
post
Post #10





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


nie masz w bazie w tabeli kolumny o nazwie wpis
Go to the top of the page
+Quote Post
Dukov
post
Post #11





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 21.03.2017

Ostrzeżenie: (0%)
-----


Mistrzu, wiem. Ale ja chce, żeby traktowało mi to jako wartość, a nie jako nazwę kolumny. O tym piszę zresztą.
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Jak chcesz, by wartosc traktowano jako tekst a nie nazwe kolumny, to powiedz dla mysql ze to tekst... Kurcze, uzyj apostofow, tak jak to robisz przy innych wartosciach tekstowych. Jedna wartosc bierzesz w apostrof, inna nie i zdziwiony :/


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
InosU31
post
Post #13





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

Ostrzeżenie: (0%)
-----


Dziwnie masz to napisane - brakuje mi tu nazw kolumn ja mam u siebie tak:

  1.  
  2. INSERT INTO tabela
  3. (id_bledu, email, text_zgloszenia)
  4. VALUES
  5. ('".$_POST['oferta_id']."', '".$_POST['email_blad']."', '".$_POST['tekstarea']."')
  6.  
  7.  
  8.  



Pozdrawiam


Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@ InosU31 nazwy kolumn nie sa potrzebne.

Owszem, sa przydatne, ale nie sa potrzebne. Problemem tutaj jest brak apostrofow jak pisalem


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
InosU31
post
Post #15





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

Ostrzeżenie: (0%)
-----


@nospor dzięki za info nie wiedziałem o tym ;-) Dałbym Ci łapkę ale nie widzę takiej opcji ;-)

Napisałem swoją odpowiedź żeby Dukov wiedział jak zapisać te apostrofy ;-)

Pozdrawiam
Go to the top of the page
+Quote Post
nospor
post
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Jesli faktycznie masz tak u siebie, to polecam lekture SQL INJECTION smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Dukov
post
Post #17





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 21.03.2017

Ostrzeżenie: (0%)
-----


Dobra dzięki panowie. PHP się ucze, a ostatnio mam ciężki okres i wszystko do mnie dociera w połowie. Się ogarnę i będę kombinował. Ale jeśli ma ktoś chęć mi napisać tą linijke, to byłbym wdzięczny. Bo uczę się tego z książek, neta po pracy, przed pracą i na przerwie o ile mam czas, więc proszę o wyrozumiałość smile.gif
Go to the top of the page
+Quote Post
nospor
post
Post #18





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przeciez dostales juz odpowiedzi jak masz to poprawic


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
viking
post
Post #19





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Poczytaj o http://php.net/manual/pl/mysqli.prepare.php wtedy odejdzie problem łączenia ciągów i zabezpieczeń.


--------------------
Go to the top of the page
+Quote Post
Dukov
post
Post #20





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 21.03.2017

Ostrzeżenie: (0%)
-----


Dostałem, zmieniłem tak jak wjkeił przykład InosU31

  1. <?php
  2. $host = 'sql.dukov.nazwa.pl';
  3. $base = 'dukov';
  4. $baseuser = 'dukov';
  5. $basepass = '1Kurwa2Kurwa';
  6.  
  7. if ($db_lnk = mysqli_connect($host, $baseuser, $basepass, $base)){
  8. $test = 4;
  9. $test1 ='kutas';
  10. $query="INSERT INTO webexamples
  11. (title, desci, link)
  12. VALUES (";
  13. $query.="('".$_POST['title']."', '".$_POST['opis']."', '".$_POST['link']."')";
  14.  
  15. if (mysqli_query($db_lnk, $query)){
  16. echo "wpisano";
  17. }
  18. else
  19. {
  20. echo mysqli_error($db_lnk);
  21. }
  22. }
  23. else
  24. {
  25. echo "do dupy";
  26. }
  27. $db_lnk -> close();
  28.  
  29. ?>


Teraz wywala taki błąd

Youhave an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 3

Tym razem muszę mieć nazwy kolumn, bo w tabeli mam pierwzą kolumnę ID jako auto increment.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 03:25