Skocz do zawartości

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


mess_alex
 Udostępnij

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

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

Mysqli to biblioteka do php 5

A jakaś alternatywna dla php 4.3?

Edytowane przez mess_alex
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

Artykuły medyczne -> Medycyna estetyczna - skuteczny sposób na poprawę urody Przydatne informacja na temat medycyny estetycznej.

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ę

Edytowane przez mess_alex
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

Edytowane przez Mion

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel

Artykuły medyczne -> Medycyna estetyczna - skuteczny sposób na poprawę urody Przydatne informacja na temat medycyny estetycznej.

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

Artykuły medyczne -> Medycyna estetyczna - skuteczny sposób na poprawę urody Przydatne informacja na temat medycyny estetycznej.

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

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

  • 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