adamon napisał(a):
Czy tak ?
echo $Id;
echo $tytul;
echo $ilosc;Próbowałem, ale nic nie pokazują. Tak jakby ich nie było.
A w jaki sposób odczytujesz je w pliku "pierwsza.php"?
adamon napisał(a):
Czy tak ?
echo $Id;
echo $tytul;
echo $ilosc;Próbowałem, ale nic nie pokazują. Tak jakby ich nie było.
A w jaki sposób odczytujesz je w pliku "pierwsza.php"?
@adamon: a tak:
echo $_POST['Id'];
echo $_POST['tytul'];
echo $_POST['ilosc'];
**Dziękuję, udało się pokazało przekazanie tych zmiennych. Wyświetliło zawartość tych zmiennych.
Jak zmodyfikować polecenie ?
$zapytanie = "INSERT INTO Zamowienia(Id, tytuł,ilość) VALUES ('$Id','$tytuł','$ilość')";
Dodaje puste rekordy bez danych wpisanych w formularzu.**
Zamiast pkt3 możesz użyć parametrów. Nie rozumiem jak to zrobić ? Czym i w jaki sposób oczyścić stringi ?
Nazwy zmiennych, tabeli, kolumn itp ustaw sobie takie, jakie masz u siebie.
// proste zapytanie
$zapytanie = "INSERT INTO tabela_test_zwykla (k1, k2) VALUES ('$z1', '$z2')";
// mysqli_result Object
$db_stan = $db -> query($zapytanie);
$db_blad = $db -> error;
echo("stan: -$db_stan- / błąd: -$db_blad-<br>");
// bezpieczne zapytanie z wykorzystaniem slotów
$zapytanie = "INSERT INTO tabela_test_zwykla (k1, k2) VALUES (?, ?)";
// mysqli_stmt Object
$o_szablon_odczytu = $db -> prepare($zapytanie);
$o_szablon_odczytu -> bind_param('ss', $z1, $z2); // 'ss' oznacza, że obie zmienne są typu string
$db_stan = $o_szablon_odczytu -> execute();
$db_blad = $db -> error;
$o_szablon_odczytu -> close();
echo("stan: -$db_stan- / błąd: -$db_blad-<br>");
To jest mój pełny kod
$zapytanie = "INSERT INTO Zamowienia(Id, tytul,ilosc) VALUES ('$Id','$tytul','$ilosc')";
// mysqli_result Object
$db_stan = $db -> query($zapytanie);
$db_blad = $db -> error;
echo("stan: -$db_stan- / błąd: -$db_blad-<br>");
I po wpisaniu tego jako wynik działania programu otrzymuję komunikat:
Fatal error: Uncaught Error: Call to a member function query() on null in /pierwsza.php:22 Stack trace: #0 {main} thrown in /pierwsza.php on line 22
perełki
Najpierw (oczywiście z twoimi parametrami połączenia:
// --- połącz
$db = new mysqli($host_nazwa, $uzer_nazwa, $uzer_haslo, $baza_nazwa);
$db -> query("SET NAMES 'utf8'");
// --- połącz
// --- test połączenia
echo("<h2>test połączenia</h2>");
if ($db -> connect_error) {
echo("<div style='color:red;'><b>Błąd MySQL</b></div>");
die("Connection failed: " . $db -> connect_error);
}
//
echo "<div style='color:green;'><b>połączono z MySQL</b></div>";
// --- /test połączenia
I jak powyższe działa, to dopiero:
$zapytanie = "INSERT INTO Zamowienia(Id, tytul,ilosc) VALUES ('$Id','$tytul','$ilosc')";
// mysqli_result Object
$db_stan = $db -> query($zapytanie);
$db_blad = $db -> error;
echo("stan: -$db_stan- / błąd: -$db_blad-");
I jak to będzie działać, to spróbuj zrobić wersję ze slotami.
I się nie łam. Sama dopiero niedawno jakoś uczciwiej to rozkminiałam i już po 2-3 dniach mogłam stwierdzić, że w miarę ogarniam :D
Katastrofa wszystkimi tymi metodami. Komunikat: udało się jesteś połączony z bazą danych
Fatal error: Uncaught Error: Call to a member function prepare() on null in /pierwsza.php:22 Stack trace: #0 {main} thrown in /pierwsza.php on line 22
"udało się jesteś połączony z bazą danych"
?