Łączenie z bazą MySQL oraz proste zapytania z poziomu PHP część 1

Jako, że baza danych bardzo często przydaje się nawet w małych projektach trzeba zastanowić się jak się z nią połączyć i jaki sposób połączenia będzie dla nas optymalny. Sposobów jest kilka ja opiszę tylko niektóre.

Powiedzmy, że mamy bazę o nazwie testowa i strukturę bazy jak poniżej z 2 rekordami
Jan Kowalski
Olga Kowal

CREATE TABLE IF NOT EXISTS `testowa` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`imie` varchar(80) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
`nazwisko` varchar(80) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ;

INSERT INTO `testowa` (`id`, `imie`, `nazwisko`) VALUES
(1, ‚Jan’, ‚Kowalski’),
(2, ‚Olga’, ‚Kowal’);

Sposób 1. Który można użyć w przypadku bardzo prostych projektów w których nie wymagamy nic prócz bardzo prostego odczytania rekordów z bazy i/lub ich dodania/updatu. Sposób ten jest często krytykowany jednak wbrew pozorom czasami przydatny. Moim zdaniem szkoda komplikować sposób połączenia aby np wykonywać jedno proste zapytanie powiedzmy SELECT.

Jak to wygląda:

<?
$polacz=mysql_connect („hostbazy”,”uzytkownikbazy”,”haslobazy”);
mysql_select_db(„nazwabazy”);
mysql_query(„set names utf8;”);
?>

Oczywiście do hosta bazy możemy dodać po dwukropku port jeśli jest inny niż defaultowy.

W powyższym przykładzie ustawiamy również kodowanie na utf8. Ważne aby w tym przypadku zapisać plik jako utf8 bez BOM.

Jak teraz najprościej coś z tej tabeli wyciągnąć.

<?
$zapytanie = mysql_query(„SELECT * FROM testowa”);
while ($pobierz = mysql_fetch_array($zapytanie)) {
echo $pobierz[id];
echo $pobierz[imie];
echo $pobierz[nazwisko];
}
?>

Podany przykład wylistuje nam:

1JanKowalski2OlgaKowal

Wszystko jest ciągiem ponieważ przy echo nie daliśmy żadnych elementów sterujących. Celowo rozdzieliłem to na oddzielne linie echo aby wszystko było czytelniejsze.

INSERT robimy równie prosto

<?
$zapytanie=mysql_query(„INSERT INTO testowa (id,imie,nazwisko)
VALUES (”,’Ewa’,’Ryba’)”);
?>

To zapytanie doda nam do tabeli testowa kolejny rekord nadając mu wartości id: 3, imie: Ewa, nazwisko: Ryba

id przybiera wartość 3 ponieważ kolumna id ma w bazie ustawione AUTO_INCREMENT, a id 1 i 2 zostały już nadane dla wcześniejszych rekordów i numerowanie oznaczone jest od 3.

Aby aktualizować rekord należy użyć:

<?
$zapytanie=mysql_query(„UPDATE `testowa` SET `imie`=’Joanna’  WHERE `id`=’3′”);
?>

Powyższe zapytanie zmieni w rekordzie o id=3 imię z Ewa na Joanna

Aby skasować dany rekord należy użyć:

<?
$zapytanie=mysql_query(„DELETE FROM testowa WHERE id=’3′”);
?>

Powyższe zapytanie skasuje rekord o id=3.

Oczywiście są to najprostsze zapytania, o ich rozbudowie postaram się napisać w przyszłości.

C.D.N.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *