{"id":417,"date":"2024-04-07T20:40:57","date_gmt":"2024-04-07T18:40:57","guid":{"rendered":"https:\/\/gdm.sosthe.sk\/?page_id=417"},"modified":"2024-04-08T07:14:06","modified_gmt":"2024-04-08T05:14:06","slug":"cvicenie-c-16-praca-s-mysql-databazami","status":"publish","type":"page","link":"https:\/\/gdm.sosthe.sk\/?page_id=417","title":{"rendered":"Cvi\u010denie \u010d.16 &#8211; Pr\u00e1ca s MySQL datab\u00e1zami I."},"content":{"rendered":"<h3>T\u00e9ma: Pr\u00e1ca s MySQL datab\u00e1zami I.<\/h3>\n<h3>\u00daloha: Vysk\u00fa\u0161ajte skripty pomocou ktor\u00fdch pripoj\u00edte datab\u00e1zov\u00fd server, vytvor\u00edte nov\u00fa datab\u00e1zu a pripoj\u00edte nov\u00fa datab\u00e1zu. Skripty bud\u00fa ulo\u017een\u00e9 v s\u00faboroch s n\u00e1zvom: pripoj_server.php, vytvor_db.php a pripoj_db.php.<\/h3>\n<h3>Podmienky: Vytvoren\u00e9 s\u00fabory so skriptami umiestnite na svoj blog v polo\u017eke PHP \u201eZadanie \u010d.16 Pr\u00e1ca s MySQL datab\u00e1zami I.\u201c<\/h3>\n<h3>Te\u00f3ria :<\/h3>\n<p>Medzi jednu z najv\u00e4\u010d\u0161\u00edch v\u00fdhod datab\u00e1z patr\u00ed to, \u017ee k d\u00e1tam v nich ulo\u017een\u00fdm je mo\u017en\u00e9 pristupova\u0165 z mnoh\u00fdch r\u00f4znych aplik\u00e1ci\u00ed. PHP pon\u00faka funkcie, ktor\u00e9 umo\u017e\u0148uj\u00fa spolupr\u00e1cu s nieko\u013ek\u00fdmi r\u00f4znymi datab\u00e1zov\u00fdmi servermi. Nech\u00fdbaj\u00fa medzi nimi samozrejme ani MySQL.<\/p>\n<p>PHP n\u00e1m pon\u00faka 3 ovl\u00e1da\u010de pre ovl\u00e1danie jednej datab\u00e1zy.<\/p>\n<ul>\n<li><strong>MySQL<\/strong> &#8211; najstar\u0161\u00ed procedur\u00e1lny ovl\u00e1da\u010d<\/li>\n<li><strong>MySQLi<\/strong> &#8211; nov\u0161\u00ed ovl\u00e1da\u010d pou\u017eite\u013en\u00fd v proced\u00fare objektovo<\/li>\n<li><strong>PDO<\/strong> &#8211; univerz\u00e1lny objektov\u00fd ovl\u00e1da\u010d pre viac druhov datab\u00e1z<\/li>\n<\/ul>\n<p>Je dobr\u00e9 si vybra\u0165 jeden z ovl\u00e1da\u010dov a v aplik\u00e1cii d\u00f4sledne pou\u017e\u00edva\u0165 len ten jeden. Roz\u0161\u00edrenie MySQL sa v s\u00fa\u010dasnej dobe neodpor\u00fa\u010da pou\u017e\u00edva\u0165, preto\u017ee nie je efekt\u00edvne. Pre nov\u00e9 projekty je vhodn\u00e9 vyu\u017ei\u0165 MySQLi alebo PDO.<\/p>\n<p>Princ\u00edp pr\u00e1ce s datab\u00e1zou v PHP skriptoch je ve\u013emi jednoduch\u00fd. Sklad\u00e1 sa z nieko\u013ek\u00fdch krokov:<\/p>\n<div class=\"orderedlist\">\n<ol type=\"1\">\n<li><i>Pripojenie k datab\u00e1ze<\/i>\u00a0\u2013 vyberieme si, ku ktor\u00e9mu serveru sa chceme pripoji\u0165, a ur\u010d\u00edme meno a heslo, pod ktor\u00fdm sa chceme prihl\u00e1si\u0165.<\/li>\n<li><i>Zaslanie SQL pr\u00edkazu<\/i>\u00a0\u2013 serveru po\u0161leme \u013eubovo\u013en\u00fd SQL pr\u00edkaz.<\/li>\n<li><i>Spracovanie v\u00fdsledku<\/i>\u00a0\u2013 server n\u00e1m vr\u00e1ti v\u00fdsledok predch\u00e1dzaj\u00faceho SQL pr\u00edkazu. Pokia\u013e sme posielali pr\u00edkaz\u00a0<tt>SELECT<\/tt>\u00a0, m\u00f4\u017eeme postupne z\u00edska\u0165 a spracova\u0165 jednotliv\u00e9 riadky v\u00fdsledku \u2013 napr\u00edklad ich vytla\u010di\u0165 ako s\u00fa\u010das\u0165 wapovej str\u00e1nky.<\/li>\n<\/ol>\n<\/div>\n<p>Pripojenie k MySQL datab\u00e1ze je ve\u013emi jednoduch\u00e9. Sl\u00fa\u017eia na to funkcie\u00a0<tt>MySQL_PConnect()<\/tt>\u00a0:<\/p>\n<pre class=\"programlisting\">MySQL_PConnect(\"localhost\", \"meno\", \"heslo\");<\/pre>\n<p>Prv\u00fdm parametrom funkcie je adresa po\u010d\u00edta\u010da, na ktorom be\u017e\u00ed datab\u00e1za. V\u00e4\u010d\u0161ina web-hostingov m\u00e1 datab\u00e1zov\u00fd server spusten\u00fd na rovnakom po\u010d\u00edta\u010di ako webov\u00fd server, a preto sta\u010d\u00ed uvies\u0165 n\u00e1zov\u00a0<tt>localhost<\/tt>\u00a0. \u010eal\u0161ie dva parametre s\u00fa meno a heslo, ktor\u00e9 n\u00e1m pre pr\u00edstup k datab\u00e1ze pridelil jej spr\u00e1vca.<\/p>\n<p>Po \u00faspe\u0161nom pripojen\u00ed k datab\u00e1ze si mus\u00edme vybra\u0165 konkr\u00e9tnu datab\u00e1zu, s ktorou budeme pracova\u0165. Jej meno n\u00e1m op\u00e4\u0165 ozn\u00e1mi spr\u00e1vca servera:<\/p>\n<pre class=\"programlisting\">MySQL_Select_DB(\"nazov_databazy\");<\/pre>\n<p>Pre samotn\u00e9 zaslanie SQL pr\u00edkazov sl\u00fa\u017ei funkcia\u00a0<tt>MySQL_Query()<\/tt>\u00a0. Ako jej parameter sa odovzd\u00e1va SQL pr\u00edkaz. Funkcia n\u00e1m vr\u00e1ti hodnotu, ktor\u00e1 n\u00e1m umo\u017e\u0148uje s v\u00fdsledkom \u010falej pracova\u0165 (pri pr\u00edkaze\u00a0<tt>SELECT<\/tt>\u00a0). Pre ostatn\u00e9 pr\u00edkazy n\u00e1m vracia logick\u00fa hodnotu, ktor\u00e1 zodpoved\u00e1 \u00faspe\u0161nosti\/ne\u00faspe\u0161nosti vykonania danej oper\u00e1cie.<\/p>\n<h4><\/h4>\n<h4><\/h4>\n<h4>Pre pripojenie MySQL servera:<\/h4>\n<pre>&lt;?php\r\n$server_name = \"localhost\";\r\n$user_name = \"xxx\";\r\n$password = \"********\";\r\n\r\n$connection = mysqli_connect($server_name, $user_name, $password);\r\n\r\nif (!$connection) {\r\necho 'Spojenie so serverom MySQL sa nepodarilo nadviaza\u0165.';\r\n}else{\r\necho 'Spojenie so serverom MySQL sa podarilo \u00faspe\u0161ne nadviaza\u0165.';\r\n}\r\n?&gt;\r\n\r\n<\/pre>\n<h4><\/h4>\n<h4>Pre vytvorenie novej datab\u00e1zy:<\/h4>\n<pre>&lt;?php\r\n$servername = \"localhost\";\r\n$username = \"xxx\";\r\n$password = \"********\";\r\n\r\n\/\/ Create connection\r\n$conn = mysqli_connect($servername, $username, $password);\r\n\/\/ Check connection\r\nif (!$conn) {\r\ndie(\"Chyba pripojenia k MySQL serveru: \" . mysqli_connect_error());\r\n}\r\n\r\n\/\/ Create database\r\n$sql = \"CREATE DATABASE myDB\";\r\nif (mysqli_query($conn, $sql)) {\r\necho \"Datab\u00e1za \u00faspe\u0161ne vytvoren\u00e1\";\r\n} else {\r\necho \"Chyba pri vytv\u00e1ran\u00ed datab\u00e1zy: \" . mysqli_error($conn);\r\n}\r\n\r\nmysqli_close($conn);\r\n?&gt;<\/pre>\n<p>&nbsp;<\/p>\n<h4>Pre\u00a0 pripojenie datab\u00e1zy:<\/h4>\n<pre>&lt;?php\r\n$servername = \"localhost\";\r\n$username = \"xxx\";\r\n$password = \"******\";\r\n$dbname = \"epu\";\r\n\r\n\/\/ Create connection\r\n$conn= mysqli_connect($servername,$username,$password,$dbname);\r\n\/\/ Check connection\r\nif (!$conn) {\r\ndie(\"Pripojenie zlyhalo: \" . mysqli_connect_error());\r\n}\r\necho \"\u00daspe\u0161n\u00e9 pripojenie k datab\u00e1ze: \" . $dbname;\r\n?&gt;<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>T\u00e9ma: Pr\u00e1ca s MySQL datab\u00e1zami I. \u00daloha: Vysk\u00fa\u0161ajte skripty pomocou ktor\u00fdch pripoj\u00edte datab\u00e1zov\u00fd server, vytvor\u00edte nov\u00fa datab\u00e1zu a pripoj\u00edte nov\u00fa datab\u00e1zu. Skripty bud\u00fa ulo\u017een\u00e9 v s\u00faboroch s n\u00e1zvom: pripoj_server.php, vytvor_db.php a pripoj_db.php. Podmienky: Vytvoren\u00e9 s\u00fabory so skriptami umiestnite na svoj blog v polo\u017eke PHP \u201eZadanie \u010d.16 Pr\u00e1ca s MySQL datab\u00e1zami I.\u201c Te\u00f3ria : Medzi jednu [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-417","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/pages\/417","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=417"}],"version-history":[{"count":7,"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/pages\/417\/revisions"}],"predecessor-version":[{"id":438,"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/pages\/417\/revisions\/438"}],"wp:attachment":[{"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}