Μερικές φορές είναι χρήσιμο να συλλέγετε δεδομένα από τους χρήστες του ιστοτόπου σας και να αποθηκεύετε αυτές τις πληροφορίες σε ένα MySQL βάση δεδομένων. Έχουμε ήδη δει ότι μπορείτε να συμπληρώσετε μια βάση δεδομένων χρησιμοποιώντας PHP, τώρα θα προσθέσουμε την πρακτικότητα του να επιτρέπεται η προσθήκη των δεδομένων μέσω ενός φιλικού προς το χρήστη ιστότοπου.
Στη συνέχεια, πρέπει να κάνετε process.php, τη σελίδα που στέλνει τα στοιχεία της φόρμας μας. Ακολουθεί ένα παράδειγμα του τρόπου συλλογής αυτών των δεδομένων για τη δημοσίευση στη βάση δεδομένων MySQL:
Φυσικά, πριν το δοκιμάσουμε, πρέπει να βεβαιωθούμε ότι υπάρχει πραγματικά ο πίνακας. Εκτέλεση αυτού του κώδικα θα πρέπει να δημιουργήσει έναν πίνακα που μπορεί να χρησιμοποιηθεί με τα δείγματα αρχείων μας:
Τώρα ξέρετε πώς να αποθηκεύσετε τα δεδομένα χρήστη στη MySQL, γι 'αυτό ας το πάρουμε ένα βήμα παραπέρα και να μάθουμε πώς να φορτώσετε ένα αρχείο για αποθήκευση. Πρώτον, ας κάνουμε τη βάση δεδομένων δείγματος:
Το πρώτο πράγμα που πρέπει να παρατηρήσετε είναι ένα πεδίο που ονομάζεται
ταυτότητα που έχει ρυθμιστεί σε ΑΥΤΟΜΑΤΗ ΑΥΞΗΣΗ. Τι είναι αυτό; Τύπος δεδομένων σημαίνει ότι θα μετρήσει για να εκχωρήσει σε κάθε αρχείο ένα μοναδικό αναγνωριστικό αρχείου ξεκινώντας από το 1 και πηγαίνοντας στο 9999 (δεδομένου ότι καθορίσαμε 4 ψηφία). Επίσης, πιθανότατα θα παρατηρήσετε ότι το πεδίο δεδομένων μας καλείται LONGBLOB. Υπάρχουν πολλοί τύποι BLOB όπως αναφέρθηκε προηγουμένως. TINYBLOB, BLOB, MEDIUMBLOB και LONGBLOB είναι οι επιλογές σας, αλλά θέσαμε τη δική μας στο LONGBLOB για να επιτρέψουμε τα μεγαλύτερα δυνατά αρχεία.Στη συνέχεια, θα δημιουργήσουμε μια φόρμα για να επιτρέψουμε στο χρήστη να φορτώσει το αρχείο της. Αυτό είναι απλά μια απλή φόρμα, προφανώς, θα μπορούσατε να το ντύσετε εάν θέλατε:
Στη συνέχεια, πρέπει να δημιουργήσουμε πραγματικά το upload.php, το οποίο θα μεταφέρει τους χρήστες μας και θα το αποθηκεύσει στη βάση δεδομένων μας. Παρακάτω είναι η κωδικοποίηση δείγματος για το upload.php.
Στη συνέχεια, χρησιμοποιεί το ADDSLASHES λειτουργία. Αυτό που κάνει αυτό είναι να προσθέσετε backslash αν χρειαστεί στο όνομα του αρχείου, έτσι ώστε να μην λάβουμε ένα σφάλμα όταν διερωτάμε τη βάση δεδομένων. Για παράδειγμα, αν έχουμε Billy'sFile.gif, θα μετατρέψει αυτό το Billy'sFile.gif. FOPEN ανοίγει το αρχείο και FREAD είναι ένα δυαδικό ασφαλές αρχείο που διαβάζεται έτσι ώστε το ADDSLASHES εφαρμόζεται σε δεδομένα εντός του αρχείου, αν χρειαστεί.
Στη συνέχεια, προσθέτουμε όλες τις πληροφορίες που συλλέγει η φόρμα μας στη βάση δεδομένων μας. Θα παρατηρήσετε ότι κατατάξαμε πρώτα τα πεδία και τις τιμές δεύτερης, ώστε να μη προσπαθήσουμε τυχαία να εισάγουμε δεδομένα στο πρώτο μας πεδίο (το πεδίο αυτόματης αντιστοίχισης).
Έχουμε ήδη μάθει πώς να ανακτήσουμε απλά δεδομένα από τη βάση δεδομένων MySQL. Ομοίως, η αποθήκευση των αρχείων σας σε μια βάση δεδομένων MySQL δεν θα ήταν πολύ πρακτική αν δεν υπήρχε τρόπος να τα ανακτήσετε. Ο τρόπος με τον οποίο θα μάθουμε να κάνουμε αυτό είναι να αναθέσουμε σε κάθε αρχείο μια διεύθυνση URL με βάση τον αριθμό ταυτότητάς του. Αν θυμάστε πότε ανεβάσαμε τα αρχεία, αναθέσαμε αυτόματα σε κάθε αρχείο έναν αριθμό ταυτότητας. Θα το χρησιμοποιήσουμε εδώ όταν καλούμε τα αρχεία πίσω. Αποθηκεύστε αυτόν τον κωδικό ως download.php
Πώς να ανακτήσετε το αρχείο σας, το σημείο στο πρόγραμμα περιήγησης στο: http://www.yoursite.com/download.php? id = 2 (αντικαταστήστε το 2 με το αναγνωριστικό αρχείου που θέλετε να μεταφορτώσετε / να εμφανίσετε)
Αυτός ο κώδικας είναι η βάση για να κάνεις πολλά πράγματα. Με αυτό ως βάση, μπορείτε να προσθέσετε σε ένα ερώτημα βάσης δεδομένων που θα απαριθμήσει τα αρχεία και τα βάζετε σε ένα αναπτυσσόμενο μενού για να επιλέξουν οι άνθρωποι. Ή θα μπορούσατε να ορίσετε την ταυτότητα ως τυχαία δημιουργημένο αριθμό, ώστε να εμφανίζεται τυχαία ένα διαφορετικό γραφικό από τη βάση δεδομένων σας κάθε φορά που επισκέπτεται κάποιος. Οι πιθανότητες είναι ατελείωτες.
Όπως και ο προηγούμενος κώδικας που κατεβάσαμε τα αρχεία, αυτό το σενάριο επιτρέπει την κατάργηση αρχείων απλά πληκτρολογώντας το URL τους: http://yoursite.com/remove.php? id = 2 (αντικαταστήστε 2 με το αναγνωριστικό που θέλετε να καταργήσετε.) Για προφανείς λόγους, θέλετε να το κάνετε να είστε προσεκτικοί με αυτόν τον κώδικα. Αυτό είναι φυσικά για επίδειξη, όταν χτίζουμε πραγματικά εφαρμογές, θα θέλουμε να θέσουμε σε αυτές τις διασφαλίσεις ρωτήστε το χρήστη εάν είναι βέβαιοι ότι θέλουν να διαγράψουν ή ίσως επιτρέψουν μόνο σε άτομα με κωδικό πρόσβασης να αφαιρέσουν αρχεία. Αυτός ο απλός κώδικας είναι η βάση που θα βασιστούμε σε όλα αυτά τα πράγματα.