Το PDO_MYSQL είναι ένα πρόγραμμα οδήγησης που υλοποιεί τη διεπαφή PHP Data Objects (PDO) για να επιτρέπει την πρόσβαση από PHP σε βάσεις δεδομένων MySQL. Όταν εκτελείτε μια έκδοση PHP πριν από την 7.1.16 ή την PHP 7.2 πριν από την 7.2.4, ορίστε την προεπιλεγμένη προσθήκη κωδικού πρόσβασης του διακομιστή MySQL 8 σε mysql_native_password, διαφορετικά θα δείτε σφάλματα παρόμοια με τη μέθοδο ελέγχου ταυτότητας που ζήτησε ο διακομιστής άγνωστη στον πελάτη [caching_sha2_caching_password] ακόμη και όταν δεν χρησιμοποιείται. Αυτό συμβαίνει επειδή η MySQL 8 έχει ως προεπιλογή caching_sha2_password, ένα πρόσθετο που δεν αναγνωρίζεται από τις παλαιότερες εκδόσεις PHP (mysqlnd). Αντίθετα, αλλάξτε το ρυθμίζοντας το . Το πρόσθετο caching_sha2_password θα υποστηρίζεται σε μελλοντική έκδοση PHP. Εν τω μεταξύ, η επέκταση mysql_xdevapi την υποστηρίζει. Προειδοποίηση Προσοχή: Ορισμένοι τύποι πινάκων MySQL (μηχανές αποθήκευσης) δεν υποστηρίζουν συναλλαγές. Όταν γράφετε κώδικα βάσης δεδομένων συναλλαγών χρησιμοποιώντας έναν τύπο πίνακα που δεν υποστηρίζει συναλλαγές, η MySQL θα προσποιηθεί ότι μια συναλλαγή ξεκίνησε με επιτυχία. Επιπλέον, τυχόν ερωτήματα DDL που εκδίδονται θα σιωπηρά οποιεσδήποτε εκκρεμείς συναλλαγές. Το πρόγραμμα οδήγησης MySQL δεν υποστηρίζει σωστά μέσω PDOStatement::bindParam, ενώ αυτές οι παράμετροι μπορούν να χρησιμοποιηθούν, δεν ενημερώνονται (δηλαδή η πραγματική έξοδος αγνοείται) Οι κοινές διανομές Unix περιλαμβάνουν δυαδικές εκδόσεις της PHP που μπορούν να εγκατασταθούν. Παρόλο που αυτές οι δυαδικές εκδόσεις συνήθως δημιουργούνται με υποστήριξη για τις επεκτάσεις MySQL, οι ίδιες οι βιβλιοθήκες επεκτάσεων μπορεί να χρειαστεί να εγκατασταθούν χρησιμοποιώντας ένα πρόσθετο πακέτο. Ελέγξτε τη διαθεσιμότητα του διαχειριστή πακέτων που συνοδεύει τη διανομή που έχετε επιλέξει. Για παράδειγμα, στο Ubuntu το πακέτο εγκαθιστά τις επεκτάσεις ext/mysql, ext/mysqli και PDO_MYSQL PHP. Στο CentOS, το πακέτο εγκαθιστά επίσης αυτές τις τρεις επεκτάσεις PHP. Εναλλακτικά, μπορείτε να μεταγλωττίσετε αυτήν την επέκταση μόνοι σας. Η δημιουργία της PHP από την πηγή σάς επιτρέπει να καθορίσετε τις επεκτάσεις MySQL που θέλετε να χρησιμοποιήσετε, καθώς και την επιλογή της βιβλιοθήκης πελατών για κάθε επέκταση. Κατά τη μεταγλώττιση, χρησιμοποιήστε το --with-pdo-mysql[=DIR] για να εγκαταστήσετε την επέκταση PDO MySQL, όπου η προαιρετική είναι η βασική βιβλιοθήκη MySQL. Η Mysqlnd είναι η προεπιλεγμένη βιβλιοθήκη. Για λεπτομέρειες σχετικά με την επιλογή βιβλιοθήκης, ανατρέξτε στο θέμα Επιλογή βιβλιοθήκης MySQL. Προαιρετικά, το --with-mysql-sock[=DIR] ρυθμίζεται στη θέση του δείκτη υποδοχής Unix MySQL για όλες τις επεκτάσεις MySQL, συμπεριλαμβανομένου του PDO_MYSQL. Εάν δεν καθορίζεται, γίνεται αναζήτηση των προεπιλεγμένων τοποθεσιών. Προαιρετικά, το --with-zlib-dir[=DIR] χρησιμοποιείται για να ορίσετε τη διαδρομή προς το πρόθεμα εγκατάστασης libz. Η υποστήριξη SSL ενεργοποιείται χρησιμοποιώντας τις κατάλληλες σταθερές PDO_MySQL, που ισοδυναμεί με την κλήση της συνάρτησης MySQL C API mysql_ssl_set Επίσης, το SSL δεν μπορεί να ενεργοποιηθεί με το PDO::setAttribute επειδή η σύνδεση υπάρχει ήδη. Δείτε επίσης την τεκμηρίωση της MySQL σχετικά με τη σύνδεση στο MySQL με SSL Οι παρακάτω σταθερές ορίζονται από αυτό το πρόγραμμα οδήγησης και θα είναι διαθέσιμες μόνο όταν η επέκταση έχει μεταγλωττιστεί σε PHP ή έχει φορτωθεί δυναμικά κατά το χρόνο εκτέλεσης. Επιπλέον, αυτές οι σταθερές του προγράμματος οδήγησης θα πρέπει να χρησιμοποιούνται μόνο εάν χρησιμοποιείτε αυτό το πρόγραμμα οδήγησης. Η χρήση χαρακτηριστικών συγκεκριμένων προγραμμάτων οδήγησης με άλλο πρόγραμμα οδήγησης μπορεί να οδηγήσει σε απροσδόκητη συμπεριφορά. Το PDO::getAttribute() μπορεί να χρησιμοποιηθεί για τη λήψη του χαρακτηριστικού για τον έλεγχο του προγράμματος οδήγησης, εάν ο κώδικάς σας μπορεί να εκτελεστεί σε πολλά προγράμματα οδήγησης. σε ένα , το πρόγραμμα οδήγησης MySQL θα χρησιμοποιήσει τις αποθηκευμένες εκδόσεις του MySQL API. Εάν γράφετε φορητό κώδικα, θα πρέπει να το χρησιμοποιήσετε. Εάν αυτό το χαρακτηριστικό οριστεί στο a, το πρόγραμμα οδήγησης MySQL θα χρησιμοποιήσει τις εκδόσεις του MySQL API σε προσωρινή μνήμη. Εάν γράφετε φορητό κώδικα, θα πρέπει να το χρησιμοποιήσετε. Παράδειγμα #1 Αναγκαστική αποθήκευση ερωτημάτων στην προσωρινή μνήμη στο mysql "Η εφαρμογή μου λειτουργεί μόνο με mysql. Θα πρέπει να χρησιμοποιήσω το \$stmt->fetchAll()"Σημείωση, αυτή η σταθερά μπορεί να χρησιμοποιηθεί μόνο στον πίνακα κατά την κατασκευή μιας νέας λαβής βάσης δεδομένων. Επιτρέπει τον περιορισμό της φόρτωσης ΤΟΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ σε αρχεία που βρίσκονται σε αυτόν τον καθορισμένο κατάλογο. Διαθέσιμο από την PHP 8.1.0. Σημείωση, αυτή η σταθερά μπορεί να χρησιμοποιηθεί μόνο στον πίνακα κατά την κατασκευή μιας νέας λαβής βάσης δεδομένων. Εντολή για εκτέλεση κατά τη σύνδεση στον διακομιστή MySQL. Θα εκτελεστεί ξανά αυτόματα κατά την επανασύνδεση. Σημείωση, αυτή η σταθερά μπορεί να χρησιμοποιηθεί μόνο στον πίνακα κατά την κατασκευή μιας νέας λαβής βάσης δεδομένων. Ανάγνωση επιλογών από το ονομαζόμενο αρχείο επιλογής αντί από . Αυτή η επιλογή δεν είναι διαθέσιμη εάν χρησιμοποιείται mysqlnd, επειδή το mysqlnd δεν διαβάζει τα αρχεία διαμόρφωσης mysql. Ανάγνωση επιλογών από την ονομαζόμενη ομάδα από ή το αρχείο που καθορίζεται με . Αυτή η επιλογή δεν είναι διαθέσιμη εάν χρησιμοποιείται mysqlnd, επειδή το mysqlnd δεν διαβάζει τα αρχεία διαμόρφωσης mysql. Μέγιστο μέγεθος buffer. Προεπιλογές σε 1 MiB. Αυτή η σταθερά δεν υποστηρίζεται όταν μεταγλωττίζεται έναντι του mysqlnd. Επιστρέψτε τον αριθμό των σειρών που βρέθηκαν (αντιστοιχίζονται) και όχι τον αριθμό των αλλαγμένων σειρών. Η διαδρομή αρχείου προς την αρχή πιστοποιητικού SSL. Η διαδρομή αρχείου προς τον κατάλογο που περιέχει τα αξιόπιστα πιστοποιητικά CA SSL, τα οποία αποθηκεύονται σε μορφή PEM. Η διαδρομή αρχείου προς το πιστοποιητικό SSL. Μια λίστα με έναν ή περισσότερους επιτρεπόμενους κρυπτογράφησης για χρήση για κρυπτογράφηση SSL, σε μορφή κατανοητή από το OpenSSL. Για παράδειγμα: Η διαδρομή αρχείου προς το κλειδί SSL. Παρέχει έναν τρόπο απενεργοποίησης της επαλήθευσης του πιστοποιητικού SSL διακομιστή. Αυτό υπάρχει στις PHP 7.0.18 και PHP 7.1.4. Απενεργοποιεί την εκτέλεση πολλαπλών ερωτημάτων τόσο στο PDO::prepare() όσο και στο PDO::query() όταν έχει οριστεί σε . Σημείωση, αυτή η σταθερά μπορεί να χρησιμοποιηθεί μόνο στον πίνακα κατά την κατασκευή μιας νέας λαβής βάσης δεδομένων Η συμπεριφορά αυτών των λειτουργιών επηρεάζεται από τις ρυθμίσεις στο . Για περισσότερες λεπτομέρειες και ορισμούς των λειτουργιών PHP_INI_*, ανατρέξτε στο Για περισσότερες λεπτομέρειες και ορισμούς των λειτουργιών PHP_INI_*, ανατρέξτε στο Πού μπορεί να οριστεί μια ρύθμιση διαμόρφωσης Ορίζει μια υποδοχή τομέα Unix. Αυτή η τιμή μπορεί είτε να οριστεί κατά το χρόνο μεταγλώττισης εάν βρεθεί μια υποδοχή τομέα κατά τη διαμόρφωση. Αυτή η ρύθμιση ini είναι μόνο Unix. Ενεργοποιεί τον εντοπισμό σφαλμάτων για PDO_MYSQL. Αυτή η ρύθμιση είναι διαθέσιμη μόνο όταν το PDO_MYSQL έχει μεταγλωττιστεί έναντι του mysqlnd και σε λειτουργία εντοπισμού σφαλμάτων PDO.