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 16:02] – admin | el:developers:database [2022/10/26 16:08] – admin | ||
---|---|---|---|
Line 28: | Line 28: | ||
</ | </ | ||
- | __Σημείωση__: | + | __Σημείωση__: |
Σε κάθε μία μέθοδο, | Σε κάθε μία μέθοδο, | ||
Line 74: | Line 74: | ||
</ | </ | ||
+ | |||
+ | ---- | ||
=== Μέθοδος querySingle($statement) === | === Μέθοδος querySingle($statement) === | ||
- | Με τη μέθοδο αυτή εκτελούμε ένα επερώτημα από το οποίο περιμένουμε να λάβουμε ως αποτέλεσμα ένα μοναδικό στοιχείο, | + | Με τη μέθοδο αυτή εκτελούμε ένα επερώτημα από το οποίο περιμένουμε να λάβουμε ως αποτέλεσμα ένα μοναδικό στοιχείο, |
- | Ως αποτέλεσμα λαμβάνουμε ένα αντικείμενο όπου κάθε ιδότητά του (property) έχει τιμή ίδια με το όνομα της στήλης σε περιβάλλον SQL. Για το λόγο αυτό είναι προτιμότερο κάθε στήλη να έχει ένα μοναδικό όνομα, ώστε να είναι μετά άμεση η προσπέλαση σε αυτό. Αν δεν υπάρχουν αποτελέσματα επιστρέφεται το @null@, οπότε είναι θεμιτό να γίνεται έλεγχος για | + | Ως αποτέλεσμα λαμβάνουμε ένα αντικείμενο όπου κάθε ιδότητά του (property) έχει τιμή ίδια με το όνομα της στήλης σε περιβάλλον SQL. Για το λόγο αυτό είναι προτιμότερο κάθε στήλη να έχει ένα μοναδικό όνομα, ώστε να είναι μετά άμεση η προσπέλαση σε αυτό. Αν δεν υπάρχουν αποτελέσματα επιστρέφεται το '' |
- | <pre>< | + | < |
$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) |
- | Αυτή η μέθοδος εκτελείται όταν περιμένουμε από το επερώτημα να επιστρέψει περισσότερο από ένα στοιχείο (ή γραμμή) και θέλουμε να πάρουμε αμέσως όλα τα αντικείμενα σε έναν πίνακα. Η μέθοδος αυτή μπορεί να χρησιμοποιηθεί σε περίπτωση που περιμένουμε τα αποτελέσματα να είναι λίγα στον αριθμό. Σε περίπτωση που είναι αρκετά, | + | Αυτή η μέθοδος εκτελείται όταν περιμένουμε από το επερώτημα να επιστρέψει περισσότερο από ένα στοιχείο (ή γραμμή) και θέλουμε να πάρουμε αμέσως όλα τα αντικείμενα σε έναν πίνακα. Η μέθοδος αυτή μπορεί να χρησιμοποιηθεί σε περίπτωση που περιμένουμε τα αποτελέσματα να είναι λίγα στον αριθμό. Σε περίπτωση που είναι αρκετά, |
- | Η σύνταξη της μεθόδου είναι αντίστοιχη ομοίως της | + | Η σύνταξη της μεθόδου είναι αντίστοιχη ομοίως της |
- | Η επιστρεφόμενη τιμή είναι ένας πίνακας με αντικείμενα, | + | Η επιστρεφόμενη τιμή είναι ένας πίνακας με αντικείμενα, |
Παράδειγμα χρήσης της μεθόδου | Παράδειγμα χρήσης της μεθόδου | ||
- | <pre>< | + | < |
$moduleIDs = Database:: | $moduleIDs = Database:: | ||
foreach ($moduleIDs as $module) { | foreach ($moduleIDs as $module) { | ||
$publicModules[] = $module-> | $publicModules[] = $module-> | ||
} | } | ||
- | </code></ | + | </ |
- | h2. Μέθοδος @queryFunc($statement, | ||
- | Η μέθοδος αυτή αναφέρεται σε επερωτήματα που μπορεί να έχουν πολλά αποτελέσματα, | + | ---- |
+ | |||
+ | === Μέθοδος queryFunc($statement, | ||
+ | |||
+ | Η μέθοδος αυτή αναφέρεται σε επερωτήματα που μπορεί να έχουν πολλά αποτελέσματα, | ||
Ως δεύτερη παράμετρο δίνουμε μία function με μία και μοναδική παράμετρο, | Ως δεύτερη παράμετρο δίνουμε μία function με μία και μοναδική παράμετρο, | ||
- | Επειδή η ορατότητα των εξωτερικών μεταβλητών μέσα στη συνάρτηση είναι περιορισμένη, | + | Επειδή η ορατότητα των εξωτερικών μεταβλητών μέσα στη συνάρτηση είναι περιορισμένη, |
Ένα απλό παράδειγμα της μεθόδου αυτής είναι το εξής: | Ένα απλό παράδειγμα της μεθόδου αυτής είναι το εξής: | ||
- | <pre>< | + | < |
DataBase:: | DataBase:: | ||
echo " | echo " | ||
- | }, intval($courseId));</ | + | }, intval($courseId)); |
+ | </ | ||
Ένα πλήρες παράδειγμα και με συνάρτησης επανάκλησης σε περίπτωση λάθους: | Ένα πλήρες παράδειγμα και με συνάρτησης επανάκλησης σε περίπτωση λάθους: | ||
- | <pre>< | + | < |
$counter = 0; | $counter = 0; | ||
Database:: | Database:: | ||
Line 131: | Line 141: | ||
exit(); | exit(); | ||
} , $dbname); | } , $dbname); | ||
- | </ | + | </ |
+ | |||
+ | ---- | ||
- | h2. Διαχείριση transactions | + | === Διαχείριση transactions |
Όλες οι κλήσεις προς τη βάση είναι transactional. Σε περίπτωση που εκτελέσουμε ένα query και, ενώ ακόμα είναι ενεργό, | Όλες οι κλήσεις προς τη βάση είναι transactional. Σε περίπτωση που εκτελέσουμε ένα query και, ενώ ακόμα είναι ενεργό, | ||
Line 140: | Line 152: | ||
Σαν παράδειγμα, | Σαν παράδειγμα, | ||
- | <pre>< | + | < |
Database:: | Database:: | ||
Database:: | Database:: | ||
Database:: | Database:: | ||
}); | }); | ||
- | </code></ | + | </ |
Μόνο όταν τελειώσει η εκτέλεση της συνάρτησης, | Μόνο όταν τελειώσει η εκτέλεση της συνάρτησης, | ||
- | h2. Ανάγνωση χαρακτηριστικών της βάσης | + | ---- |
+ | |||
+ | === Ανάγνωση χαρακτηριστικών της βάσης | ||
Υποστηρίζεται η ανάγνωση χαρακτηριστικών της βάσης (attributes) μέσω της μεθόδου | Υποστηρίζεται η ανάγνωση χαρακτηριστικών της βάσης (attributes) μέσω της μεθόδου | ||
- | <pre>< | + | < |
Database:: | Database:: | ||
- | </code></ | + | </ |
Τα πιθανά attribute names είναι τα εξής: | Τα πιθανά attribute names είναι τα εξής: |