Kliknite tukaj, da si ogledate profil, kot ga vidijo drugi

PHP in povezovanje na MySql bazo

Delite vsebino na Facebooku
Delite vsebino na Twitterju
  V tej lekciji bomo spoznali, kako se lahko s pomočjo PHP povežemo na bazo MySQL, iz nje pridobimo podatke ali pa v bazo vstavimo nov zapis.
 
 
1
 
 
Če ste šele pričeli z učenjem PHP in MySql, potem predlagam, da si najprej na svojem računalniku postavite WAMP strežnik, ki vsebuje vse potrebno za razvoj aplikacij v PHP in MySql.






Če pa se želite naučiti, kako se ustvari baza, pa si oglejte lekcijo:



 
 
2
 
 
Za povezavo do MySql baze bomo uporabili razširitev  mysqli.

Sintaksa za kreiranje povezave do baze je enostavna:
$mysqli = new mysqli("host", "username", "password", "database");

Spodnji primer prikazuje, kako se povežemo na bazo my_db na lokalnem računalniku, z uporabniškim imenom root in praznim geslom.
$mysqli = new mysqli("localhost", "root", "", "my_db");

Ko ustvarimo povezavo, je priporočljivo, da preverimo, ali je bila povezava na bazo uspešna:
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}



Poleg mysqli se za povezovanje na bazo uporablja tudi razširitev mysql. Ker pa je razširitev mysql od verzije PHP 5.5 naprej opuščena, raje uporabljate razširitev mysqli.

 
 
3
 
 
Sedaj bomo pripravili novo SQL poizvedbo, ki bo vrnila podatke iz tabele my_table.

$query = "SELECT * FROM my_table";
$result = $mysqli->query($query);
 
 
4
 
 
Rezultat poizvedbe je shranjen v spremenljivki $result.

Sedaj bomo uporabili zanko while, s pomočjo katere se bomo sprehodili čez vrnjene rezultate.

Vsaka vrnjena vrstica bo shranjena v spremenljivki $row. Posamezna polja iz zapisa bomo izpisali tako, da v oglatih oklepajih vpišemo ime polja.

while ($row = $result->fetch_assoc()) {
  echo $row['number'].'<br />';
  echo $row['text'].'<br />';
  echo $row['date'].'<br />';
  echo '------------------------ <br />';
}

Značka <br /> je dodana zaradi lepšega izpisa.

 
 
5
 
 
Vstavljanje novih podatkov v bazo je prav tako enostavno.

Najprej pripravimo utrezen SQL stavek za vstavljanje podatkov.

Zatem ga zaženemo in podatki bodo vpisani v bazo.

Omenjeni postopek je prikazan na spodnjem primeru:
$query="INSERT INTO my_table(id, number, text, date) VALUES(0,987,'hello','2013-05-21')";
$mysqli->query($query);

 
 
6
 
 
Spodaj najdete celotno kodo iz lekcije, kar bo olajšalo kopiranje v vašo PHP skripto.

$mysqli = new mysqli("localhost", "root", "", "my_db");

if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

$query = "SELECT * FROM my_table";
$result = $mysqli->query($query);

while($row = $result->fetch_assoc()) {
  echo $row['number'].'<br />';
  echo $row['text'].'<br />';
  echo $row['date'].'<br />';
  echo '------------------------ <br />';
}

//insert new record
$query="INSERT INTO my_table(id, number, text, date) VALUES(0,987,'hello','2013-05-21')";
$mysqli->query($query);


V primeru nejasnosti ali dodatnih vprašanje pa povprašajte na forumu.
 
 
Komentiraj
 
 
 
 
 
27.7.2015, 9:50
men ne delujejo šumniki (tak vprašajček se pokaže)
v htmlju sem natavil charset na utf-8 in v phpmyadmin sem nasavil pravilo za razvrščanje znakov na utf8_slovenian_ci.

Kako bi to popravil?
 
 
 
 
27.7.2015, 10:36
Mogoce imas datoteko s kodo ansi kodirano?
 
 
 
 
28.7.2015, 23:36
ne use je utf-8
sam zdej sem ugotovil da če z phpmyadmin dodam podatke se mi šumniki prav prikazujejo v phpmyadmin na spletni strani (ki sem jo jaz naredil) pa ne
če pa podatke dodam iz spletne strani se na spletni strani šumniki prikazujejo pravilno v phpmyadmin pa ne

tako da nevem kaj bi bilo lahko narobe

me pa še zanima kako lahko urejaš te podatke iz spletne strani
(zdej sem naredil da maš forum in poltem notri vpišeš naslov pa besedilo in se potem objavi na spletno stran ko klikneš submit)
 
 
 
 
29.7.2015, 10:39
Zazipaj datoteko/e pa daj tu link da pogledam
 
 
 
 
30.7.2015, 21:56
evo

https://drive.google.com/file/d/0BwoIBS8....
 
 
 
 
31.7.2015, 2:59
Problem je, da mysqli objektu nisi nastavil charseta na utf8

$mysqli = new mysqli("localhost", "root", "", "test_db" );
$mysqli->set_charset("utf8" ); //tole dodaj in stvar deluje


spremenjeno: MC++ (31.7.2015, 3:00)
 
 
 
 
31.7.2015, 11:15
o hvala
zdej mi dela
 
 
 
 
3.8.2015, 18:05
Naredil sem tako kot piše, pa se nič ne pokaže.
 
Prijava in registracija
 
 
 
Zmaga.com ponuja brezplačno in razumljivo učenje računalniških programov, vas na enkraten način spozna z različnimi svetovnimi jeziki, s podrobno obrazloženimi recepti prikaže čare kulinarike in vam prežene strahove pred domačimi opravili.
 
 
Poleg tega lahko prebirate poučne članke, ki so namenjene širjenju naše splošne razgledanosti ter preverite svoje znanje z priljubljenim in enostavnim sistemom za preverjanje znanja. Če med vsebinami, ki se dodajajo vsak dan, ne najdete želenega znanja, je za vaša vprašanja na voljo dobro obiskan forum, kjer lahko tudi aktivno sodelujete. V primeru, da bi radi svoje praktično znanje delili z ostalimi, pa to lahko storite preko preprostega vmesnika za dodajanje vsebin. Zmagajte z znanjem z Zmaga.com!