V prednameščenem okolju, v katerem delamo je nameščen tudi strežnik MySQL - no v resnici je naložen MariaDB (zakaj, na povezavi).
Strežnik je sotopen na naslovu "localhost".
Na strežnik se prijavite z uporabniškim imenom in geslom, s katerim dostopate do "virtualke." Neposredno do strežnika pridete prek terminala (ctrl-alt-t).
mysql -h localhost -u kroneggerl -p
Enter password:
Glede na to da delamo lokalno se lahko prijavite tudi samo z mysql brez vsega - ali pa celotno prijavo speljete od začetka do konca
mysql --host localhost --user kroneggerl --database SP_kroneggerl -p
Enter password:
V mySQL okolju, lahko pregledamo katere baze že obstajajo:
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| SP_kroneggerl |
+--------------------+
2 rows in set (0,00 sec)
Uporabljali bazo pripravljeno za nas (pri meni je to SP_kroneggerl)
MariaDB [(none)]> use SP_kroneggerl; Database changed MariaDB [SP_kroneggerl]>
*** Če delamo na svojem strežniku***, moramo najprej ustvariti bazo. Za to, na vzpostavljenem strežniku nimamo pravic.
mysql> create database kroneggerl;
Query OK, 1 row affected (0.004 sec)
Brisanje obstoječe baze:
mysql> DROP DATABASE IF EXISTS kroneggerl;
Query OK, 0 rows affected (0.009 sec)
Napolnimo s podatki:
USE SP_kroneggerl;
CREATE TABLE imenik(
ime VARCHAR(30) NOT NULL,
priimek VARCHAR(30) NOT NULL,
mesto VARCHAR(40) NOT NULL,
telefon VARCHAR(20) NOT NULL
);
Za ponovitev posameznih tipov zapisov:
------------ ŠTEVILSKI TIPI ------------
TINYINT: Število z vrednostjo največ 127 ali najmanj -128
SMALLINT: Število z vrednostjo največ 32.768 ali najmanj -32.767
MEDIUMINT: Število z vrednostjo največ 8.388.608 ali najmanj -8.388.608
INT: Število z vrednostjo največ 2^31 ali najmanj -2^31
BIGINT: Število z vrednostjo največ 2^63 ali najmanj -2^63
FLOAT: Število z decimalnimi mesti, z vrednostjo največ 1.1E38 ali najmanj -1.1E38
DOUBLE: Število z decimalnimi mesti, z vrednostjo največ 1.7E308 ali najmanj -1.7E308
------------ NIZI (STRINGI) ------------
CHAR: Niz znakov s fiksno dolžino
VARCHAR: Niz znakov s spremenljivo dolžino
BLOB: Lahko vsebuje do 2^16 bajtov podatkov
ENUM: Niz znakov z omejenim številom možnih vrednosti, ki jih morate vnaprej določiti
SET: Seznam dovoljenih nizov znakov. Za razliko od ENUM lahko SET vsebuje več vrednosti hkrati, medtem ko ENUM omogoča le eno
------------ DATUM IN ČAS ------------
DATE: Datum v formatu (YYYY-MM-DD)
TIME: Čas v formatu (HH:MM:SS)
DATETIME: Datum in čas v formatu (YYYY-MM-DD HH:MM:SS)
TIMESTAMP: Datum in čas, pogosto uporaben za samodejno beleženje časa spremembe zapisa (YYYYMMDDHHMMSS)
YEAR: Leto v formatu (YYYY)
Kako sedaj to izgleda?
MariaDB [SP_kroneggerl]> DESCRIBE imenik
-> ;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| ime | varchar(30) | NO | | NULL | |
| priimek | varchar(30) | NO | | NULL | |
| mesto | varchar(40) | NO | | NULL | |
| telefon | varchar(20) | NO | | NULL | |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.060 sec)
Še pobrišimo tabelo
MariaDB [SP_kroneggerl]> drop table imenik;
Query OK, 0 rows affected (0.045 sec)
Če delamo na svojem strežniku poskrbimo za varnost!!!
Ustvarimo uporabnika baze s čim manj pravicami (v realnosti je to naša spletna stran, ki se bo povezovala na bazo)
Tako kot vedno gre za varnost. Spodnje ukaze izvedete direktno na strežniku mysql.
Na pripravljenem strežniku nimamo pravic za ustvarjanje novih profilov.
GRANT INSERT, SELECT, DELETE, UPDATE ON SP_kroneggerl.*
TO 'studentweb'@'localhost'
IDENTIFIED BY 'Živel 1. maj!';
Uporabniku z imenom "studentweb"
In geslom "Živel 1. maj!"
V bazi "test2" dovolimo:
<?php
// Tole je koda namenjena priklopu na bazo
// PAZI gre za osebne podatke, ki morajo ostati skriti
// Ker gre za php datoteko, podatki ne bodo prikazani v brskalniku
// vseeno mora biti datoteka spravljena izven "web" mape
// in zgolj klicana po potrebi shranili jo bomo v "config.php"
$sql_host = "localhost";
$sql_user = "kroneggerl";
$sql_pass = "";
$sql_db = "SP_kroneggerl";
echo "<p>Config.php uspešno prebran</p>";
?>
<?php
require_once("config.php");
?>
<?php
require_once("config.php");
$PDO = new PDO("mysql:host=". $sql_host .";dbname=" .$sql_db .";charset=utf8", $sql_user, $sql_pass);
?>