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

Dodawanie rekordu do bazy danych

Object Storage Arubacloud
0 głosów
957 wizyt
pytanie zadane 20 grudnia 2015 w SQL, bazy danych przez Rakso Użytkownik (560 p.)

Witam :) Mam problem z dodanie rekordu do bazy ze strony PHP. Po naciśnięciu przycisku WYŚLIJ pojawia sie pusty biały ekran, w bazie się nic nie pojawia.

fragment formularza który wywułuję plik z kodem php

<form action="wyslij.php" method="POST" >
    Imie : <input type="text" name="imie" class="text" />  </br></br>   
    Nazwisko : <input type="text" name="nazwisko" class="text"/> </br></br>
    Steam ID : <input type="text" name="steamid" class="text" />  </br></br>   
    Nick w grze : <input type="text" name="nickwgrze" class="text" /></br></br>
    E-mail : <input type="text" name="email" class="text" /></br></br>
    
    <input type="submit" formaction="vip.php" class="zakup" value="Powrót" /> 
    <input type="submit"  class="zakup" value="Wyslij" />
</form>

plik wyslij.php  :

<?php
	session_start();
		require_once "connect.php";
	
	$polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
	if($polaczenie->connect_errno!=0)
	{
		echo "Error".$polaczenie-> connect_errno;
	}
	else
	{
		$imie= $_POST['imie'];
		$nazwisko= $_POST['nazwisko'];
		$steam_id= $_POST['steamid'];
		$nick_w_grze= $_POST['nickwgrze'];
		$email= $_POST['email'];
		$sql="INSERT INTO `vipt` (`ID`, `Imię`, `Nazwisko`, `Steam ID`, `Nick w grze`, `E-mail`) VALUES (NULL, '$imie', '$nazwisko', '$steam_id', '$nick_w_grze', '$email')";
		if($rezultat=@$polaczenie-> query($sql))
		{

			
			echo "dane wpisane </br>|".$ii;
			
		}
		
		//echo $imie."</br>".$nazwisko."</br>".$steam_id."</br>".$nick_w_grze."</br>".$email;
		$polaczenie -> close();
	}
?>

plik connect.php :

<?php

	$host="localhost";
	$db_user="root";
	$db_password="";
	$db_name="vip";
	?>

 

2 odpowiedzi

+2 głosów
odpowiedź 20 grudnia 2015 przez Albert221 Obywatel (1,980 p.)
wybrane 20 grudnia 2015 przez Rakso
 
Najlepsza

Wygląda na to, że zapytanie w linii 18. się nie wykonuje, przez co warunek nie zostaje spełniony i nic się nie wyświetla na ekranie. Dodaj za if'em (np. w linii 25) kod, aby zobaczyć błąd i go nam podaj:

var_dump($polaczenie->error);

A tak na przyszłość to nie używaj @, ponieważ błędów się nie ukrywa, tylko naprawia albo obsługuje (try..catch).

Pozdrawiam

komentarz 20 grudnia 2015 przez Rakso Użytkownik (560 p.)

Fatal error: Call to undefined method mysqli::error() in D:\XAMPP\htdocs\csgo\wyslij.php on line 25

komentarz 20 grudnia 2015 przez Albert221 Obywatel (1,980 p.)

Mój błąd.

var_dump($polaczenie->error);

Bez nawiasów metody.

komentarz 20 grudnia 2015 przez Rakso Użytkownik (560 p.)

string(38) "Unknown column 'Imię' in 'field list'"

komentarz 20 grudnia 2015 przez Albert221 Obywatel (1,980 p.)

No i już masz przyczynę tego, że nie działa :) Nazwy kolumn nie powinny zawierać polskich znaków. Dodajesz też dane do kolumny Imię, może chodziło Tobie o Imie bez ogonka? 

komentarz 20 grudnia 2015 przez Rakso Użytkownik (560 p.)
Dzięki wielkie :)

Wiesz nawet myślałem o tym :D

 

to że nie można używać polskich znaków to znaczy że mam złe kodowanie
komentarz 20 grudnia 2015 przez Albert221 Obywatel (1,980 p.)
Polskie znaki możesz jak najbardziej używać, ale nie w nazwach kolumn. Tego po prostu nie powinno się robić, tak samo jak nie tworzyć zmiennych zawierających polskich znaków :)

Jeśli pomogłem to oznacz moją odpowiedź jako najlepszą.
0 głosów
odpowiedź 20 grudnia 2015 przez Skill Użytkownik (910 p.)
Usuń "@" w 18 linii kodu wyslij.php. Zobacz czy błąd się nie pokaże.

Jeżeli nie zobacz czy dane się zapisały.
komentarz 20 grudnia 2015 przez Rakso Użytkownik (560 p.)
błąd się nie pojawił
dalej jest puste białe tło
w bazie nic się nie pojawiło
komentarz 20 grudnia 2015 przez Skill Użytkownik (910 p.)
W linii 17 usuń te '' do nazwy tabeli.
komentarz 20 grudnia 2015 przez efiku Szeryf (75,160 p.)
to dodaj sobie  na samym początku pliku :

ini_set("display_errors",1);

error_reporting(E_ALL);

No i ja polecam PDO + prepared:

https://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO
komentarz 20 grudnia 2015 przez Skill Użytkownik (910 p.)
To znaczy tak :

$sql="INSERT INTO vipt (`ID`, `Imię`, `Nazwisko`, `Steam ID`, `Nick w grze`, `E-mail`) VALUES (NULL, '$imie', '$nazwisko', '$steam_id', '$nick_w_grze', '$email')";
komentarz 20 grudnia 2015 przez Rakso Użytkownik (560 p.)

dalej jest puste białe tło 
w bazie nic się nie pojawiło

Podobne pytania

0 głosów
1 odpowiedź 148 wizyt
0 głosów
2 odpowiedzi 890 wizyt
0 głosów
2 odpowiedzi 905 wizyt
pytanie zadane 29 grudnia 2018 w SQL, bazy danych przez StormHawk Nowicjusz (200 p.)

92,584 zapytań

141,434 odpowiedzi

319,671 komentarzy

61,968 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...