MySQLi παρέχει ένα σύνολο λειτουργιών για την δομή του κώδικα διαδικαστικές στυλ για να κάνουν τη μετάβαση από την MySQL ευκολότερη. Ωστόσο , παρέχει επίσης λειτουργικότητα μέσα από ένα σύνολο object-oriented τάξεις . Χρησιμοποιώντας ένα object-oriented στυλ μπορεί να κάνει η ενσωμάτωση MySQL ταιριάζει καλύτερα με την έκδοση PHP 5 αντικειμενοστραφή χαρακτηριστικά και συχνά εξαλείφει την ανάγκη για τη δημιουργία επιπλέον μεταβλητές για τη στήριξη ενεργειών MySQL και τα καθήκοντα . Για παράδειγμα , η ακόλουθη εικόνα δείχνει τον κωδικό για να συνδεθείτε σε ένα διακομιστή βάσης δεδομένων και να ανοίξετε μια βάση δεδομένων MySQL σε δύο και MySQLi : MySQL : $ dbc = mysql_connect ( " localhost " , "χρήστης " , " password" ) ? $ Db = mysql_select_database ( «βάση δεδομένων» ) ?
mySQLi : $ db = νέα mysqli ( "localhost " , "χρήστης " , "password " , " βάση δεδομένων ")?
Η
Έτοιμα καταστάσεις
Η
Ίσως η μεγαλύτερη διαφορά μεταξύ MySQL και MySQLi είναι η υποστήριξη MySQLi για έτοιμες καταστάσεις . Με την MySQL , θα πρέπει να λάβει ειδική φροντίδα για να ξεφύγουν από κάθε συμβολοσειράς που χρησιμοποιείται σε ένα ερώτημα για την αποτροπή SQL ένεση επιθέσεις . Με MySQLi και έτοιμες καταστάσεις , θα δεσμεύουν μια σειρά παραμέτρων σε ένα ερώτημα και να ρυθμίσετε τις παραμέτρους ίσες με τις διαφορετικές τιμές που θέλετε να χρησιμοποιήσετε στο ερώτημα . MySQLi φροντίζει να διασφαλίσει ότι όλος ο κώδικας είναι σωστά δραπέτευσε πριν από την εφαρμογή στη βάση δεδομένων . Για παράδειγμα , ο παρακάτω κώδικας εισάγει δύο recrods σε έναν πίνακα MySQL χρησιμοποιώντας MySQLi : ?
$ Stmt = $ db - > προετοιμασία ( " INSERT INTO PEOPLE ( Ονοματεπώνυμο , e-mail ) τιμές ( , ) ? $ Stmt - > bind_param ( "ss " , $ fullname , $ email ) ? $ fullname = " John Johnson " ? $ email = " john@johnjohnson.com " ? $ Stmt - > execute ( ) ? $ fullname = " Mary Johnson " ? $ email = " mary@johnjohnson.com " ? $ Stmt - > execute ( ) ? $ Stmt - > close ( ) ?
Η απόδοση βελτιώσεις
Η
Λόγω των έτοιμων δηλώσεων και άλλες βελτιώσεις της αποτελεσματικότητας , η επέκταση MySQLi θα πρέπει να εκτελέσει πιο γρήγορα από ό, τι αντίστοιχες δηλώσεις MySQL . Όπως μπορείτε να δείτε από το προηγούμενο παράδειγμα με τη χρήση έτοιμων δηλώσεων , η επιβάρυνση ενός ενθέτου απαιτείται μόνο μία φορά , όταν η δήλωση είναι έτοιμη. με ένα ισοδύναμο ένθετο MySQL , η επιβάρυνση του ενθέτου θα πρέπει να επαναλαμβάνεται με κάθε ερώτημα ένθετο στη βάση δεδομένων .
εικόνων Συναλλαγές
Η
MySQLi παρέχει πρόσθετη λειτουργικότητα , με τη μορφή των συναλλαγών . Με την επέκταση MySQLi , μπορείτε να συσσωρεύσει μια σειρά πράξεων δεδομένων μαζί σε μια συναλλαγή και να εκτελέσει τις εργασίες μαζί ως ενιαία συναλλαγή . Αν μια εργασία στη συναλλαγή αποτύχει , ολόκληρη η λειτουργία αποτυγχάνει και κάθε οι αλλαγές που έχουν γίνει επανέρχεται . για παράδειγμα , μπορείτε να χρησιμοποιήσετε μια συναλλαγή κατά τον προγραμματισμό μια μεταφορά χρημάτων μεταξύ δύο λογαριασμών , γιατί αν και οι δύο πλευρές της λειτουργίας επιτύχει , η πράξη δεν είναι μια επιτυχία , και δεν θέλετε να αφήσετε μια κατάσταση όπου ένας λογαριασμός έχει χρεωθεί , αλλά η άλλη λογαριασμός δεν έχει πιστωθεί .
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα