Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
el:developers:database [2022/10/26 15:58] – admin | el:developers:database [2022/10/26 16:07] – admin | ||
---|---|---|---|
Line 28: | Line 28: | ||
</ | </ | ||
- | _Σημείωση: | + | __Σημείωση__: για το '' |
Σε κάθε μία μέθοδο, | Σε κάθε μία μέθοδο, | ||
Στον επόμενο πίνακα φαίνονται οι αντιστοιχίες τύπων και χαρακτήρων. Η αντιστοιχία είναι όμοια με αυτή της '' | Στον επόμενο πίνακα φαίνονται οι αντιστοιχίες τύπων και χαρακτήρων. Η αντιστοιχία είναι όμοια με αυτή της '' | ||
- | |_. Χαρακτήρας |_. Τύπος παραμέτρου | | + | | //Χαρακτήρας// | //Τύπος παραμέτρου// | |
| ?d | ακέραιος αριθμός | | | ?d | ακέραιος αριθμός | | ||
| ?b | δυαδικός (true/ | | ?b | δυαδικός (true/ | ||
Line 53: | Line 53: | ||
Πριν τη λίστα με τις παραμέτρους που θα εισαγχθούν στο επερώτημα, | Πριν τη λίστα με τις παραμέτρους που θα εισαγχθούν στο επερώτημα, | ||
- | h2. Μέθοδος @query($statement); | ||
- | Με τη μέθοδο αυτή εκτελούμε ένα απλό επερώτημα. Η επιστρεφόμενη τιμή αυτής της συνάρτησης είναι ένα αντικείμενο τύπου | + | ---- |
- | <pre>< | + | |
+ | === Μέθοδος query($statement) === | ||
+ | |||
+ | Με τη μέθοδο αυτή εκτελούμε ένα απλό επερώτημα. Η επιστρεφόμενη τιμή αυτής της συνάρτησης είναι ένα αντικείμενο τύπου | ||
+ | < | ||
$cid = 1; | $cid = 1; | ||
$affectedRows = Database:: | $affectedRows = Database:: | ||
- | </code></ | + | </ |
- | Το αντικείμενο | + | Το αντικείμενο |
Σε περίπτωση που μας ενδιεφέρει να ενημερωθούμε αν κάτι δεν έχει πάει καλά, αυτό γίνεται με τη συνάρτηση επανάκλησης, | Σε περίπτωση που μας ενδιεφέρει να ενημερωθούμε αν κάτι δεν έχει πάει καλά, αυτό γίνεται με τη συνάρτηση επανάκλησης, | ||
- | <pre>< | + | < |
$cid = 1; | $cid = 1; | ||
Database:: | Database:: | ||
echo "An error has occured: " . $errormsg; | echo "An error has occured: " . $errormsg; | ||
}, $cid); | }, $cid); | ||
- | </code></ | + | </ |
- | h2. Μέθοδος @querySingle($statement); | + | ---- |
- | Με τη μέθοδο | + | === Μέθοδος |
- | Ως αποτέλεσμα λαμβάνουμε ένα αντικείμενο όπου κάθε ιδότητά του (property) έχει τιμή ίδια με το όνομα της στήλης σε περιβάλλον SQL. Για το λόγο αυτό είναι προτιμότερο κάθε στήλη να έχει ένα μοναδικό όνομα, ώστε να είναι μετά άμεση η προσπέλαση σε αυτό. Αν δεν υπάρχουν αποτελέσματα επιστρέφεται το @null@, οπότε είναι θεμιτό να γίνεται έλεγχος για | + | Με τη μέθοδο αυτή εκτελούμε ένα επερώτημα από το οποίο περιμένουμε να λάβουμε ως αποτέλεσμα ένα μοναδικό στοιχείο, |
- | <pre>< | + | |
+ | Ως αποτέλεσμα λαμβάνουμε ένα αντικείμενο όπου κάθε ιδότητά του (property) έχει τιμή ίδια με το όνομα της στήλης σε περιβάλλον SQL. Για το λόγο αυτό είναι προτιμότερο κάθε στήλη να έχει ένα μοναδικό όνομα, ώστε να είναι μετά άμεση η προσπέλαση σε αυτό. Αν δεν υπάρχουν αποτελέσματα επιστρέφεται το '' | ||
+ | < | ||
$stat_object = Database:: | $stat_object = Database:: | ||
if ($stat_object) { | if ($stat_object) { | ||
$status = $stat_object-> | $status = $stat_object-> | ||
} | } | ||
- | </ | + | </ |
- | Ένα άλλο παράδειγμα: | + | |
+ | Ένα άλλο παράδειγμα: | ||
+ | < | ||
$openCoursesNum = Database:: | $openCoursesNum = Database:: | ||
- | </ | + | </ |
+ | |||
+ | ---- | ||
- | h2. Μέθοδος @queryArray($statement);@ | + | === Μέθοδος @queryArray($statement) |
- | Αυτή η μέθοδος εκτελείται όταν περιμένουμε από το επερώτημα να επιστρέψει περισσότερο από ένα στοιχείο (ή γραμμή) και θέλουμε να πάρουμε αμέσως όλα τα αντικείμενα σε έναν πίνακα. Η μέθοδος αυτή μπορεί να χρησιμοποιηθεί σε περίπτωση που περιμένουμε τα αποτελέσματα να είναι λίγα στον αριθμό. Σε περίπτωση που είναι αρκετά, | + | Αυτή η μέθοδος εκτελείται όταν περιμένουμε από το επερώτημα να επιστρέψει περισσότερο από ένα στοιχείο (ή γραμμή) και θέλουμε να πάρουμε αμέσως όλα τα αντικείμενα σε έναν πίνακα. Η μέθοδος αυτή μπορεί να χρησιμοποιηθεί σε περίπτωση που περιμένουμε τα αποτελέσματα να είναι λίγα στον αριθμό. Σε περίπτωση που είναι αρκετά, |
- | Η σύνταξη της μεθόδου είναι αντίστοιχη ομοίως της | + | Η σύνταξη της μεθόδου είναι αντίστοιχη ομοίως της |
- | Η επιστρεφόμενη τιμή είναι ένας πίνακας με αντικείμενα, | + | Η επιστρεφόμενη τιμή είναι ένας πίνακας με αντικείμενα, |
Παράδειγμα χρήσης της μεθόδου | Παράδειγμα χρήσης της μεθόδου | ||
- | <pre>< | + | < |
$moduleIDs = Database:: | $moduleIDs = Database:: | ||
foreach ($moduleIDs as $module) { | foreach ($moduleIDs as $module) { | ||
$publicModules[] = $module-> | $publicModules[] = $module-> | ||
} | } | ||
- | </ | + | </ |
+ | |||
+ | |||
+ | ---- | ||
- | h2. Μέθοδος @queryFunc($statement, | + | === Μέθοδος @queryFunc($statement, |
- | Η μέθοδος αυτή αναφέρεται σε επερωτήματα που μπορεί να έχουν πολλά αποτελέσματα, | + | Η μέθοδος αυτή αναφέρεται σε επερωτήματα που μπορεί να έχουν πολλά αποτελέσματα, |
Ως δεύτερη παράμετρο δίνουμε μία function με μία και μοναδική παράμετρο, | Ως δεύτερη παράμετρο δίνουμε μία function με μία και μοναδική παράμετρο, | ||
- | Επειδή η ορατότητα των εξωτερικών μεταβλητών μέσα στη συνάρτηση είναι περιορισμένη, | + | Επειδή η ορατότητα των εξωτερικών μεταβλητών μέσα στη συνάρτηση είναι περιορισμένη, |
Ένα απλό παράδειγμα της μεθόδου αυτής είναι το εξής: | Ένα απλό παράδειγμα της μεθόδου αυτής είναι το εξής: | ||
- | <pre>< | + | < |
DataBase:: | DataBase:: | ||
echo " | echo " | ||
- | }, intval($courseId));</ | + | }, intval($courseId)); |
+ | </ | ||
Ένα πλήρες παράδειγμα και με συνάρτησης επανάκλησης σε περίπτωση λάθους: | Ένα πλήρες παράδειγμα και με συνάρτησης επανάκλησης σε περίπτωση λάθους: | ||
- | <pre>< | + | < |
$counter = 0; | $counter = 0; | ||
Database:: | Database:: | ||
Line 128: | Line 141: | ||
exit(); | exit(); | ||
} , $dbname); | } , $dbname); | ||
- | </code></ | + | </ |
- | h2. Διαχείριση transactions | + | ---- |
+ | |||
+ | === Διαχείριση transactions | ||
Όλες οι κλήσεις προς τη βάση είναι transactional. Σε περίπτωση που εκτελέσουμε ένα query και, ενώ ακόμα είναι ενεργό, | Όλες οι κλήσεις προς τη βάση είναι transactional. Σε περίπτωση που εκτελέσουμε ένα query και, ενώ ακόμα είναι ενεργό, | ||
Line 137: | Line 152: | ||
Σαν παράδειγμα, | Σαν παράδειγμα, | ||
- | <pre>< | + | < |
Database:: | Database:: | ||
Database:: | Database:: | ||
Database:: | Database:: | ||
}); | }); | ||
- | </code></ | + | </ |
Μόνο όταν τελειώσει η εκτέλεση της συνάρτησης, | Μόνο όταν τελειώσει η εκτέλεση της συνάρτησης, | ||
- | h2. Ανάγνωση χαρακτηριστικών της βάσης | + | ---- |
+ | |||
+ | === Ανάγνωση χαρακτηριστικών της βάσης | ||
Υποστηρίζεται η ανάγνωση χαρακτηριστικών της βάσης (attributes) μέσω της μεθόδου | Υποστηρίζεται η ανάγνωση χαρακτηριστικών της βάσης (attributes) μέσω της μεθόδου | ||
- | <pre>< | + | < |
Database:: | Database:: | ||
- | </code></ | + | </ |
Τα πιθανά attribute names είναι τα εξής: | Τα πιθανά attribute names είναι τα εξής: |