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

question-closed PHP/MySQL-przesyłanie z formularza do bazy.

Object Storage Arubacloud
0 głosów
2,128 wizyt
pytanie zadane 15 kwietnia 2019 w HTML i CSS przez hao123 Nowicjusz (150 p.)
zamknięte 15 kwietnia 2019 przez hao123

Witam, mam problem z przesyłaniem danych z formularza do bazy danych.

(dopiero zaczynam swoją przygodę z PHP)

Plik index.html

<!DOCTYPE html>
<html lang="en">
<hedad>
	<meta charset="UTF-8">
	<title>test</title>
</head>
<body>
			<h2>Formularz</h2>
			<form action="dodaj.php" method="post">
				<input type="text" name="gra" placeholder="gra" required /> <br />
				<input type="text" name="cena" placeholder="cena" required /> <br />
				<button type="submit">Dodaj</button>
			</form>
				
</body>
</html>
 

Plik dodaj.php

<?php

require("connect.php");

$gra = $_POST['gra'];
$cena = $_POST['cena'];

$sql = "INSERT INTO test (id, gra, cena) VALUES ('','$gra','$cena')";
$result = $conn->query($sql);

?>

Problem polega na tym że gdy wpisuje w pola tekst i klikam przycisk, wywala

"Ta strona nie działa" "HTTP ERROR 500"

W logach error php wskazuje 9 linie kodu, a dokładnie:

[15-Apr-2019 21:29:10 Europe/Berlin] PHP Notice:  Undefined variable: conn in /zpool/shared/www1838/site3149/public/dodaj.php on line 9
[15-Apr-2019 21:29:10 Europe/Berlin] PHP Fatal error:  Uncaught Error: Call to a member function query() on null in /zpool/shared/www1838/site3149/public/dodaj.php:9
Stack trace: #0 {main}

9 linia dodaj.php: $result = $conn->query($sql);

jak to naprawić?

 

komentarz zamknięcia: rozwiązane.

2 odpowiedzi

+1 głos
odpowiedź 15 kwietnia 2019 przez Luna Cognita Dyskutant (8,130 p.)
wybrane 15 kwietnia 2019 przez hao123
 
Najlepsza
do funkcji INSERT użyj $conn->prepare($sql); a następnie $conn->execute();

btw. podczas require nie używaj nawiasów, ani znaków "", powinno wyglądać tak: require 'connect.php';
+1 głos
odpowiedź 15 kwietnia 2019 przez wiktoz Mądrala (7,040 p.)

Cześć, 

po pierwsze w pliku dodaj.php nie nawiązałeś połączenia z bazą danych. W pliku connect.php masz prawdopodobnie tylko zmienne gdzie przechowujesz dane do połączenia, czyli hasło, login, host i nazwę bazy. Musisz pod require("connect.php"); dodać nawiązanie połączenia np. 

$conn = new mysqli($host,$db_user,$db_pass,$db_name);

Oczywiście wszystkie zmienne muszą być nazwane tak samo jak w pliku connect.php.

Podobne pytania

0 głosów
1 odpowiedź 145 wizyt
pytanie zadane 31 grudnia 2018 w PHP przez Jokii Nowicjusz (240 p.)
0 głosów
3 odpowiedzi 413 wizyt
pytanie zadane 25 kwietnia 2021 w PHP przez mat19 Obywatel (1,580 p.)
0 głosów
1 odpowiedź 256 wizyt

92,538 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,923 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!

...