| INTERNET |  Własne funkcje MySQL   

Czy nie byłeś nigdy zmęczony ciągłym pisaniem funkcji MySQL, aby pobrać jakieś proste dane z tablicy? Ja byłem więc stworzyłem kilka pomocnych funkcji, które załączam teraz do każdego pliku PHP korzystającego z baz danych. Zresztą zobacz sam !

Jeżeli jesteś już gotowy do stworzenia portalu lub strony, na pewno przyjdzie potrzeba wielokrotnego używania funkcji   mysql_connect, mysql_query oraz mysql_fetch_array. I mogę powiedzieć Ci tylko jedno, będziesz tym zmęczony. Stworzyłem zatem osobny plik, w którym umieściłem kilka funkcji, które umożliwiają pobieranie danych, kasowanie, dodawanie oraz modyfikowanie rekordów w bazie danych. Dzięki temu pisanie kodu stało się bardziej strukturalne i mniej męczące aniżeli wcześniej.

Kolejnym plusem jest prostsze odnajdywanie błędów w kodzie.

W każdym pliku PHP, który korzysta z baz danych, wstawiam poniższe linie kodu:

# funkcje SQL:
require 'SQLFunctions.inc.php3';

Plik ten zawiera 6 funkcji:

  • connectIt() - łączy z bazą danych
  • doSelect() - pobiera rekord z bazy danych
  • numSelect() - zlicza ilość rekordów (wierszy) w zbiorze wyników

  • doInsert() - wstawia nowy rekord do bazy danych

  • doUpdate() - modyfikuje rekordy w bazie danych

  • doDelete() - kasuje rekordy w bazy danych

W artykule wyjaśnie pierwsze dwie funkcje.

Jak to działa

Używając funkcji MySQLa bezpośrednio w PHP, będziesz musiał wykonać kilka rzeczy zanim otrzymasz wynik z bazy danych. Jak Julie wyjaśnił w artykule, musimy połączyć się z bazą danych, następnie użyć zmiennej połączenia (id) w każdej z funkcji MySQLa (wstawianie, usuwanie czy też pobieranie danych z tablicy).

W moich funkcjach musiałem zrobić to samo. Pierwszą rzeczą było połączenie się z bazą danych. Stworzyłem zatem jedną funkcję, która ma za zadanie tylko łączenie się z bazą danych.

Funkcja connectIt:

function doSelect($table, $condition = " ", $selectThis = "*") {
#deklarowanie zmiennych globalnych
global $db;
# łączenie się z bazą danych
$connect = connectIt ();
# wykonanie zapytania SQL
$sqlQuery = "SELECT " . $selectThis . " FROM " . $table . " " . $condition;
$queryID = mysql_db_query ($db, $sqlQuery, $connect);
# print $sqlQuery;
# print "<p>Query: " . $sqlQuery;
$resultArray = mysql_fetch_array($queryID);
return $resultArray;
}

Funkcja doSelect() pobiera trzy zmienne : $table, $selectThis i $condition. Zmienne $selectThis i $condition nie są wymagane - oznacza to że jeżeli nie przypiszemy do nich żadnych wartości to zostaną przypisane domyślne wartości.

W trzeciej linii funkcji deklarujemy zmienne globalne - w tym wypadku zmienną $db (baza danych). Zmienna ta umieszczona jest w osobnym pliku db.inc.php3 (o którym wspomniałem wcześniej). Musimy przecież wiedzieć z jaką bazą danych mamy się połączyć.

Piąta linia wywołuje funkcję connectIt() i przypisuje zmienną połączenia (id) do zmiennej $connect. Musimy ją znać podczas wywoływania funkcji mysql_db_query.

W siódmej linii, tworzymy zapytanie SQL, które przypisujemy do zmiennej $sqlQuery.

String podzielony jest na 5 części - połączenie specyficznych dla SQL słów (SELECT oraz FROM), oraz trzech zmiennych, którym wartości przypisywane są podczas wywoływania funkcji. Zobacz poniższe przykłady, aby zrozumieć zasadę działania tej funkcji.

W dziewiątej linii tworzymy nową zmienną - $queryID, której przypisujemy wynik funkcji mysql_db_query(). Funkcja ta pobiera trzy argumenty - $db, $sqlQuery oraz $connect.

W dwunastej linii pobieramy wiersz z wyniku zapytania i przypisujemy go do zmiennej $resultArray. Kolejna linia zwraca tą zmienną jako rezultat naszej funkcji.

Uwagi: Dla ułatwienia debugowania kodu zawarłem w funkcji (linia 10) linijkę kodu :
# print "<p>Query: " . $sqlQuery;
Dzięki wyrzuceniu komentarza z tej linii (#), zapytanie SQL zostanie wyświetlone na ekranie. Używałem tego sposobu, gdy zwracane były inne rezultaty aniżeli oczekiwane przeze mnie.

Przykłady użycia funkcji:

Mamy tablicę klientów, z kolumnami ID, Name, Address oraz phone (przeważnie tablica tego typu będzie zawierała więcej detali, ale to jest tylko prosty przykład)

Ex 1.
Chciałbyś znaleźć wszystkich klientów o imieniu Jonson:

$condition = " WHERE Name = 'Jonson'"
$table = "customer";
$info = doSelect($table, $condition);
# print the info;:
print "<p>ID: " . $info[ID];
print "<p>Name: " . $info[Name];
print "<p>Address: " . $info[Address];
print "<p>Phone: " . $info[phone];

Ex. 2
Chciałbyś znaleźć tylko adresy klientów o imieniu Jonson:

$select = " Address ";
$condition = " WHERE Name = 'Jonson' ";
$table = "customer";
$info = doSelect($table, $condition, $select);
print "<p>Address: " . $info[Address];

lub

print "<p>Address: " . $info[0];

 

Autor:
Roer Kai tłum. Tomasz Szmigiel
tomasz.szmigiel@inetplus.pl

Artykuł pochodzi ze strony :
http://www.php.computerzone.pl



                    
ARCHIWALIA | WEBHELP.PL | REDAKCJA                  POPRZEDNIA STRONA | SPIS TREŚCI | NASTĘPNA STRONA

CONTENTS COPYRIGHT © 2000 - 2001, KRZYSZTOF DZIEWOŃSKI. ALL RIGHTS RESERVED.