Autorius Tema: PHP PDO LOGIN MYSQL  (Skaityta 490 kartus)

Neprisijungęs Noyz

  • Naujokas
  • *
  • Įrašai: 40
  • Karma: +0/-0
    • Žiūrėti profilį
PHP PDO LOGIN MYSQL
« Įrašytas: 2014-12-05 22:44:37 pm »
Sveiki.. Ankščiau buvau pradėjęs mokintis php kai buvau 16~ metų, dabar gailiuosi, kad viską mečiau kadangi jau pradmenis mokėjau tikrai neblogai. Grįžau ir matau visokius PDO, pasiskaičiau, kad senų kodų geriau nenaudoti ir iškarto eiti prie PDO. Ok. Susiradau prisijungimą prie mysql ir absoliučiai nieko nesuprantu:

try {
$db = new PDO('mysql:host=localhost;dbname=name;', 'name', 'pass');
} catch(PDOException $k) {
die ('Prisijungimas prie <b>DB</b> negalimas, tikrinkite mysql jungimasi!');
}

new PDO? catch, try, PDOException $k.. Kas tai? Detaliai galima kažkur rasti paaiškinimus?

Neprisijungęs Lukas Liesis

  • Administratorius
  • Herojus
  • ******
  • Įrašai: 7439
  • Karma: +231/-15
    • Žiūrėti profilį
    • mano CV
Ats: PHP PDO LOGIN MYSQL
« Atsakymas #1 Įrašytas: 2014-12-05 23:57:39 pm »
as pats pdo praktiskai niekada nenaudoju, nuo mysql_ perejau tiesiai ant ORM'u, kurie buna su framework'ais, dabar naudoju phalcon. PDO is pradziu gali pasirodyti "sundetinga", taciau kai supranti, tai pamatai kiek daug paprastu bedu issprendzia, ka turejo mysql_.. funkcijos. saugumo, greicio, testavimo ir kt. dalykai yra lengvesni su pdo arba orm'u.

As bent jau siulau nuosirdziai perskaityti bent sita dokumentacijos dali: http://docs.phalconphp.com/en/latest/reference/models.html bus tada aisku kas yra orm'as ir tada gal lengviau bus kas yra pdo. Apie pdo nelabai galiu daug kalbeti, nes as tiksliai nezinau kurios funkcijos yra orm'u naudotu, kurios pdo.

try catch yra Exception'u programing design'as, ar pattern'as kaip cia pavadinus nzn, esme tame kad viduje

try {}

darai ka reikia ir jei buna klaida tai gali nutraukti visa vykdyma ismesdamas exception'a, ir tada kazka toliau daryti tuo atveju, pvz:

try{
 // kazkas ok
// kazkas ok
// kazkas negerai -> ismeti exception'a: throw new Exception('zinute', 123);
// cia jau nebesivykdo
} catch(Exception $e){
$e->getMessage(); // grazina "zinute"
$e->getNumber(); // grazina 123
$e->getTraceAsString(); // atrodo taip funkcija vadinas, man PHPStorm'as autocomplete'ina, tai nzn mintinai :) siaip ar anaip galima gaut info kokioje eiluteje buvo ismestas exceptionas ir kas buvo pries tai vykdoma.
}

http://php.net/manual/en/language.exceptions.php
http://stackoverflow.com/questions/17549584/how-to-efficiently-use-try-catch-blocks-in-php

Exception'ai gali buti ivairus, pvz PDOException, bet jie visi turi extendint "Exception" klase http://docs.phalconphp.com/en/latest/api/Phalcon_Exception.html cia pvz Phalcon framework'o Exception'as, kuris extendina "Exception" klase. viska, kas extendina "Exception" galima throw'inti ir catch'inti :)

gerai tai, kad gali but taip:


try {

 funkcija(); // funkcijos viduj ar bet kokiame kode kuris parasytas ne cia bet cia yra vykdomas gali but ismestas exception'as ir jei jis niekur nebuvo "pagautas" tai nueis iki sekancio "catch"

} catch(PDOException $e){
// cia pateks tik tie Exception'ai kurie turi paveldeje PDOException klase
} catch(PhalconException $e){
// cia pagausi tik PhalconExpcetion exception'us
} catch(Exception $e){
// cia pagausi absoliuciai visus exception'us, nes visi PDOException ir kt turi paveldeje Exception klase.
}

tokiam pvz jei bus ismestas funkcija(); PDOExcpetion bus iskviestas tik pirmas catch bloke esantis kodas. Jei jau exception'as buvo pagautas, jo daugiau niekas negaudo, nebent ji ismesi vel su "throw"


taip, kodavimas vystosi, labai greitai. Jei nori daugiau "mind-fuck" tai gali pasidomet nodejs ir websockets. O jei uztenka ir pdo, tai siulau toliau paziuret framework'u tokiu kaip phalcon, symfony, laravel, codeigniter, zend ir kt. pasiskaityk kas kaip skirias, paziurek filmuku youtube yra daug puikiu nemokamu paskaitu :)

 
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
serveriai.lt 50% nuolaida!
Free Hosting
Free Templates

Neprisijungęs Noyz

  • Naujokas
  • *
  • Įrašai: 40
  • Karma: +0/-0
    • Žiūrėti profilį
Ats: PHP PDO LOGIN MYSQL
« Atsakymas #2 Įrašytas: 2014-12-07 01:44:35 am »
Dėkui labai, bandysiu labiau įsigilint. :)

Neprisijungęs ello

  • Naujokas
  • *
  • Įrašai: 41
  • Karma: +1/-0
    • Žiūrėti profilį
    • ello
Ats: PHP PDO LOGIN MYSQL
« Atsakymas #3 Įrašytas: 2014-12-07 08:54:04 am »
kaip sekėsi? man irgi taip buvo ... galiu užvesti ant kelio
Klysti - žmogiška...

Manualai.lt Forumas

Ats: PHP PDO LOGIN MYSQL
« Atsakymas #3 Įrašytas: 2014-12-07 08:54:04 am »

Neprisijungęs Noyz

  • Naujokas
  • *
  • Įrašai: 40
  • Karma: +0/-0
    • Žiūrėti profilį
Ats: PHP PDO LOGIN MYSQL
« Atsakymas #4 Įrašytas: 2014-12-07 20:31:31 pm »
Reiktų paaiškinimų..

$sql= "SELECT COUNT (*) AS num FROM `managers` WHERE `username` = :username and `password` = :password ";
$result = $connection->prepare($sql);
$result->bindParam(":username" ,$_POST['username']);
$result->bindParam(":password" ,$_POST['password']);
$result->execute();

Pirma/antra eilutė selectina informaciją iš mysql, suskaičiuoja viską. O kitos?

Neprisijungęs ello

  • Naujokas
  • *
  • Įrašai: 41
  • Karma: +1/-0
    • Žiūrėti profilį
    • ello
Ats: PHP PDO LOGIN MYSQL
« Atsakymas #5 Įrašytas: 2014-12-08 08:27:09 am »
http://php.net/manual/en/reserved.variables.post.php

jis gauna duomenis iš inputo
Klysti - žmogiška...

Manualai.lt Forumas

Ats: PHP PDO LOGIN MYSQL
« Atsakymas #5 Įrašytas: 2014-12-08 08:27:09 am »