SQL Queries μέσα σε function ή όχι?

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
falegk
Δημοσιεύσεις: 44
Εγγραφή: 04 Δεκ 2009 19:17
Τοποθεσία: Thessaloniki
Επικοινωνία:

SQL Queries μέσα σε function ή όχι?

Δημοσίευση από falegk » 04 Μάιος 2013 14:14

Γεια σε όλους.

Ίσος ο τίτλος να μην είναι σωστός.

Θα ήθελα να ρωτήσω την γνώμη σας (μιας και δεν έχω μεγάλη εμπειρία) άν τα SQL Queries που χρησιμοποιώ σε διάφορα σημεία του site που φτιάχνω
είναι καλύτερο να τα έχω μέσα σε συναρτήσεις?

και άν ναι πως περίπου πρέπει να είναι δομημένες?

Για παράδειγμα.

Έχω αυτό που εμφανίζει τα τελευταία 3 πόστ στην κεντρική σελίδα και το έχω μέσα στον κώδικα έτσι:

Κώδικας: Επιλογή όλων

<?php try &#123;
                $pdo = new PDO&#40;"mysql&#58;host=$dbhost;dbname=$dbname; charset=UTF-8", $dbuser, $dbpass&#41;;
                $pdo->exec&#40;'SET NAMES utf8'&#41;;

                $latestpost = "SELECT post_title,post_date,post_url FROM fw_posts ORDER BY post_date DESC LIMIT 0,3";

                $statement = $pdo->query&#40;$latestpost&#41;;
                $statement -> execute&#40;array&#40; &#41;&#41;;

                while &#40; $record = $statement->fetch&#40;PDO&#58;&#58;FETCH_ASSOC&#41; &#41; &#123;
                    $PostTitle = $record&#91;'post_title'&#93;;
                    $PostName = $record&#91;'post_url'&#93;;
                    echo' 
                        <li class="orange-cross"><a href="blog-post.php?article='.$PostName.'">'.$PostTitle.'</a></li>
                         ';
                &#125;
                $statement->closeCursor&#40;&#41;;
                $pdo = null;
            &#125; catch &#40;PDOException $e&#41; &#123;
      // if something wrong happens in the try&#123;...&#125; block execution comes here
      print "Database Error&#58; " . $e->getMessage&#40;&#41; . "<br/>";
      die&#40;&#41;;
    &#125;
            ?>
οποτε άν έχω πολλά τετοια μέσα στον κώδικα θα γίνεται λίγο πανικός.

Σκέφτηκα οτι με κάποιον τρόπο το try{} θα έπρεπε να είναι μια ξεχωριστή συνάρτηση (αφού θα το καλώ σε όλα τα Queries) και κάθε query ξεχωριστή συνάρτηση που θα την καλώ μέσα στην συνάρτηση του try (αν ακούγετε χαζό μήν γελάτε :P ).

Δοκίμασα να το κάνω αλλά μου φάνηκε περίπλοκο και δεν κατάφερα κάτι.

Έχετε καμία ιδέα , καμία "καλή" τεχνική?

Ευχαριστώ για τον χρόνο σας.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

SQL Queries μέσα σε function ή όχι?

Δημοσίευση από fafos » 04 Μάιος 2013 17:30

Me auton ton tropo syndeeis synexeia thn vash.. apo ta arxaia xronia xrhsimopoioume kapoio arxeio configuration (p.x. config.php h dbconnect.php h settings.php klp) opou ekei mesa ektos ton diaforon statheron rythmiseon exoume kai thn syndesh me thn vash:

Κώδικας: Επιλογή όλων

//**database info**//
$dbhost = 'localhost';//your host
$dbuser = 'root';//database username
$dbpass = '';//database password
$dbname = 'onoma_vashs';//database name

//database connect
try &#123;
$pdo = new PDO&#40;"mysql&#58;host=$dbhost;dbname=$dbname", $dbuser, $dbpass,
       array&#40;PDO&#58;&#58;MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"&#41;&#41;;
    $pdo->setAttribute&#40;PDO&#58;&#58;ATTR_ERRMODE, PDO&#58;&#58;ERRMODE_EXCEPTION&#41;;
    $pdo->setAttribute&#40;PDO&#58;&#58;ATTR_EMULATE_PREPARES, false&#41;;
&#125;
catch&#40;Exception $e&#41; &#123;
    echo 'Exception -> ';
    var_dump&#40;$e->getMessage&#40;&#41;&#41;;
&#125;
apo ekei kai pera kaleis thn configuration selida (kaneis include) sw oles tis selides sou kai kaleis ta queries sou..

Tora, an einai kapoio query pou tha to xrhsimopoihses mia fora se kapoia selida den xreiazesai synarthsh..
An omos thn kaleis se diafores selides-shmeia allazontas kapoio koino dedomeno kalytera na xrhsimopoieis kapoia synarthsh allazontas auto to koino dedomeno... paradeigma:

Κώδικας: Επιλογή όλων

function get_info&#40;$val&#41;&#123;
$data = "SELECT * FROM table WHERE id='$val' ORDER BY id LIMIT 1";
$data = $pdo->query&#40;$data&#41;;
$data = $data->fetch&#40;&#41;;
&#125;

get_info&#40;123&#41;;//pare ta dedomena me id 123
gia pio periploka (se dhmiourgia alla pio eukola kai praktika se ektelesh) mporeis na dhmiourghseis mia class opou me aples entoles tha kaneis ta panta.. p.x: http://www.phpclasses.org/package/6867- ... h-PDO.html
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
falegk
Δημοσιεύσεις: 44
Εγγραφή: 04 Δεκ 2009 19:17
Τοποθεσία: Thessaloniki
Επικοινωνία:

SQL Queries μέσα σε function ή όχι?

Δημοσίευση από falegk » 04 Μάιος 2013 17:48

νομίζω πως είναι ακριβός αυτο που χρειαζόμουν.

έχω το αρχείο με τα στοιχεία της βάσης και τα έκανα include αλλα δεν είχα ιδέα οτι έπρεπε να έχω εκεί το try{} (με την μορφή που μου το έστειλες) και απλά να κάνω τα queries μου όπου θέλω.
Τώρα άρχισε να ξεκαθαρίζει μέσα μου.
Το έκανα όπως είπες και δουλεύει τέλεια.

με τις συναρτήσεις τώρα ου είναι ποιο εύκολα τα πράγματα.

Για τις κλάσεις που είπες θα το ψάξω.

Πραγματικά ευχαριστώ πολύ , βοήθησε πάρα πολύ. :)

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες