Πρόβλημα Με Ελληνικούς Χαρακτήρες Στη Βάση Δεδομένων

Πολλές φορές συμβαίνει ελληνικοί χαρακτήρες να είναι αποθηκευμένοι στη βάση δεδομένων με τη μορφή:

Με τα βινεµÎκΠ»Î¬ÎºÎ¹Î± κινε²Î¹Îίστε και

Αυτό το πρόβλημα είναι γνωστό και ως «double encoded UTF-8 data». Συνήθως οφείλεται σε λανθασμένο collation της βάσης δεδομένων, σε λανθασμένο encoding της εφαρμογής/ιστοσελίδας που αποθηκεύει τα δεδομένα στη βάση, σε μη ορθό migration δεδομένων από μια βάση σε άλλη κλπ.

Προκειμένου να διορθώσουμε το πρόβλημα, κάνουμε χρήση του παρακάτω SQL query μέσα από το PhpMyAdmin ή στο command line του MySQL:

Αντικαθιστούμε το db_table με το όνομα του table της βάσης δεδομένων μας και το db_column με το όνομα της στήλης(column) της βάσης που έχει τους προβληματικούς χαρακτήρες. Αφού τρέξουμε το query, οι ακαταλαβίστικοι χαρακτήρες θα μετατραπούν πάλι σε αναγνώσιμους ελληνικούς χαρακτήρες. 🙂

Αντιγραφή Δεδομένων Από Μια Βάση Δεδομένων Σε Άλλη

Υπάρχουν περιπτώσεις όπου κατά τη διάρκεια ανάπτυξης κάποιου web project δημιουργούμε ένα αντίγραφο της ενεργής βάσης δεδομένων και το χρησιμοποιούμε για την ανάπτυξη της ιστοσελίδας/εφαρμογής.

Κατά τη διαδικασία ανάπτυξης, τυχαίνει να μεταβληθούν δεδομένα μόνο από ορισμένα tables της βάσης. Όταν έρθει η στιγμή να ενσωματώσουμε τα δεδομένα της development βάσης δεδομένων στην ενεργή database, τότε θα μεταφέρουμε μόνο τα δεδομένα του ή των table που έχουν αλλαγές.

Για το σκοπό αυτό, χρησιμοποιούμε τον παρακάτω κώδικα:

Ο παραπάνω κώδικας κάνει «update» τα δεδομένα στο «table1» της ενεργής βάσης «livedb» με αυτά στο «table2» της «developmentdb» βάσης δεδομένων που χρησιμοποιήθηκαν για την ανάπτυξη του web project. Για το update, στο WHERE clause θέτουμε ότι τα IDs των δύο tables είναι τα ίδια.

 

Δημιουργία Αντιγράφων Ασφαλείας Πολλών Βάσεων Δεδομένων

Σε περίπτωση που διαχειρίζεστε server με πολλές βάσεις δεδομένων, θα έχετε πιθανότατα έρθει αντιμέτωποι με το πρόβλημα της δημιουργίας αντίγραφων ασφαλείας.

Αν έχετε 2-3 βάσεις δεδομένων μπορείτε να χρησιμοποιήσετε το phpMyAdmin, να κάνετε κλικ στο όνομα της κάθε βάσης δεδομένων, μετά κλικ στο «Export» tab και μετά να κατεβάσετε στον σκληρό σας δίσκο την database. Αν όμως έχετε 10, 20, 30 ή και παραπάνω βάσεις δεδομένων, αυτή η διαδικασία είναι πολύ χρονοβόρα.

Εναλλακτικά, μπορείτε να δημιουργήσετε ένα αρχείο κειμένου (.txt document) μέσα στο οποίο θα αποθηκεύσετε τον ακόλουθο κώδικα:

Η εντολή mysqldump δημιουργεί ένα αντίγραφο της βάσης δεδομένων (vasi_dedomenwn_1, vasi_dedomenwn_2 κλπ) και το αποθηκεύει ως αρχείο .sql (vasi_dedomenwn_1.sql, vasi_dedomenwn_2.sql κλπ).

Για αρχή λοιπόν, δημιουργήστε ένα .txt αρχείο στο οποίο σε κάθε σειρά θα έχετε την κάθε βάση του server σας που θέλετε να αποθηκεύσετε. Αυτό το αρχείο θα το χρησιμοποιήσουμε στην πορεία.

Διαβάστε το υπόλοιπο άρθρο »