Skocz do zawartości

Łączenie się z bazą MySQL za pomocą PHP


mess_alex

Rekomendowane odpowiedzi

Witam,

doszedłem w książce do rozdziału o łączeniu się z bazą mysql za pomocą php.

Oto kod z książki (zmieniłem tylko zawartość zmiennej $db i pozbylem się "małpy" przed tą zmieną):

<html>
<head>
 <title>"Książkorama"-Rezultaty wyszukiwania</title>
</head>
<body>
<h1>"Książkorama"-Rezultaty wyszukiwania </h1>
<?php
 // utworzenie krótkich nazw zmiennych
 $metoda_szukania=$_POST['metoda_szukania'];
 $wyrazenie=$_POST['wyrazenie'];

 $wyrazenie = trim($wyrazenie);

 if (!$metoda_szukania || !$wyrazenie)
 {
 echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
 exit;
 }

 if (!get_magic_quotes_gpc())
 {
$metoda_szukania = addslashes($metoda_szukania);
$wyrazenie = addslashes($wyrazenie);
 }

 @ $db = new mysqli('localhost', 'ospdzd3(nazwa uzytkownika)', '(TuWpisałemHasło)', 'ospdzd3(nazwa bazy danych)');

 if (mysqli_connect_errno())
 {
 echo 'Błąd: Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
 exit;
 }

 $zapytanie = "select * from ksiazki where ".$metoda_szukania." like '%".$wyrazenie."%'";
 $wynik = $db->query($zapytanie);

 $ile_znalezionych = $wynik->num_rows;

 echo '<p>Ilość znalezionych pozycji: '.$ile_znalezionych.'</p>';

 for ($i=0; $i <$ile_znalezionych; $i++)
 {
 $wiersz = $wynik->fetch_assoc();
 echo '<p><strong>'.($i+1).'. Tytuł: ';
 echo stripslashes($wiersz['tytul']);
 echo '</strong><br />Autor: ';
 echo stripslashes($wiersz['autor']);
 echo '<br />ISBN: ';
 echo stripslashes($wiersz['isbn']);
 echo '<br />Cena: ';
 echo stripslashes($wiersz['cena']);
 echo '</p>';
 }

 $wynik->free();
 $db->close();

?>

</body>
</html>

Błąd jaki wyświetla ten kod można zobaczyć po wypełnieniu tego formularza.

O co chodzi? Z tego co rozumiem to potrzebna jest jakaś klasa mysqli :/ Jak to można poprawić?

edit//

Może czytał ktoś tę (PHP i MySQL Tworzenie stron WWW Vademecum profesjonalisty) i jakoś ominął ten błąd?

Pozdrawiam

Zespół Downa - porady, ważne informacje dla rodziców, rodzeństwa, opiekunów.
Odnośnik do komentarza
Udostępnij na innych stronach

Po co korzystasz z skryptów których NIE rozumiesz ? Do połączenia z bazą danych nie trzeba jakiś wielkich kodów wystarczy:

mysql_connect ('nazwa_hosta[:port] ', 'użytkownik' ,'hasło') or die (mysql_error());

potem wybieramy bazę danych:

mysql_select_db('baza_danych')or die (mysql_error());

następnie zadajemy zapytania:np:

mysql_query("SELECT * FROM nazwa tabeli ");

itd.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Po co korzystasz z skryptów których NIE rozumiesz ?

Czytam książkę i to jest skrypt, który omawiają.

I dziękuję

Zespół Downa - porady, ważne informacje dla rodziców, rodzeństwa, opiekunów.
Odnośnik do komentarza
Udostępnij na innych stronach

To poczytaj też kursy internetowe tyczące mysql są tam podstawy a nie tak jak w twoim przykładzie niepotrzebne zagmatwanie kodu dla kogoś który na się tego dopiero uczyć ! Jest tego cala masa:

kursy mysql

albo ten: kurs mysql z serwisu home.pl

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Czy ja wiem. Jak się uczyć, to już porządnie :) Ja uczyłem się od php3 i teraz mam ochotę przerabiać wszystkie swoje skrypty na php5... Jeżeli pisać, to zgodnie z najnowszymi trendami, historią niech się zajmują historycy.

Dała matka rozum? To kombinuj.

Odnośnik do komentarza
Udostępnij na innych stronach

Czy ja wiem. Jak się uczyć, to już porządnie :
Tak, ale żeby uczyć się porządnie trzeba znać podstawy. Chyba, że jesteś zwolennikiem nauki pływania zaczynającej się od wrzucenia delikwenta na środek jeziora :peace:

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

  • 6 miesięcy temu...

nie chce zakladac nowego posta, szukam i nie moge znalezc jakos, choc fakt ze duzo czasu nie poswiecilem szukaniu, lecz mysle ze szybsze bedzie zapytanie a odpowiedz tez chyba nie powinna byc ciezka :)

Do rzeczy:

Otoz, ucze sie dopiero php i mysql i chcialbym wiedziec czy po zapytaniu i otrzymaniu wynikow konieczne jest zwolnienie wynikow, tzn. $wynik->free(); - do czego sluzy dokladnie ta funkcja, bo wstawiam na stronie bez tego i jest ok, ale moze cos ukrytego jest w tym co moze potem mi jakos sie pokazac, albo obciaza baze jakas, no nie wiem, po prostu mi dziala dobrze bez tego a nie wiem czy nie powinienem to wstawic.

Jesli tak, to:

mam kod strony gdzie w wiekszosci jest html a gdzie nie gdzie wstawiam <?php ?> a w nim pobieram z bazy za pomoca select wartosci... jest w jednym dokumencie kilka takich znacznikow otwierajacych i zamykajacych i jak juz mam uzyc free() to nie wiem czy po kazdym zapytaniu w kazdym znaczniku czy na koniec po wszystkich,

Dziekuje za pomoc :D Pozdrawiam

Nie ma sygnatury, tzn. jest że jej nie ma.

Odnośnik do komentarza
Udostępnij na innych stronach

ahaa... a jesli zapytaniem sciagam tylko jakies 5 linijek z bazy ( w bazie mam linijek ponad 5 tys. i tych zapytan jest okolo 5 na kazdej podstronie... jesli uzyc to uzyc po kazdym zapytaniu jak mam rozumiec? tzn po kazdym wyswietleniu wynikow kazdego zapytania :unsure: tak? Dzieki za pomoc :)

Nie ma sygnatury, tzn. jest że jej nie ma.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności