Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> PHP /MySQL Προγραμματισμός

Δεν μπορώ να Τοποθετήστε μια απόστροφο Into MySQL

Ο χαρακτήρας απόστροφο δημιουργεί πρόβλημα σε όλες τις διαλέκτους SQL που χρησιμοποιείται για τον προγραμματισμό της βάσης δεδομένων . Για την MySQL , όπως και σε άλλες εκδόσεις του SQL , προγραμματιστές περιβάλλουν τα στοιχεία του χαρακτήρα με αποστρόφους να εισάγετε δεδομένα σε έναν πίνακα , ενημερώνει ή να εκτελεί άλλες λειτουργίες της βάσης δεδομένων . Το πρόβλημα προκύπτει όταν η ίδια δεδομένα χαρακτήρων περιέχει αποστρόφους ως σημεία στίξης . Η λύση έγκειται στην τοποθέτηση ενός ειδικού χαρακτήρα που προηγούνται αμέσως τυχόν αποστρόφους στα δεδομένα χαρακτήρων . Απόστροφο Delimiter
Η

Στην έκδοση του SQL MySQL , θα σηματοδοτούν την αρχή και το τέλος μιας συμβολοσειράς είτε με μονά εισαγωγικά ή διπλά εισαγωγικά . Και τα δύο παραδείγματα που ακολουθούν ισχύουν :

INSERT INTO COMPANY_TABLE ( company_name ) ΑΞΙΕΣ « The Fish Shack » ?

INSERT INTO COMPANY_TABLE ( company_name ) ΑΞΙΕΣ " The Fish Shack " ?

το παράδειγμα που ακολουθεί , ωστόσο , δημιουργεί ένα σφάλμα:

INSERT INTO COMPANY_TABLE ( tag_line ) ΑΞΙΕΣ « Eat at Τζο - είναι καλό φαγητό ! " ?

SQL θέλει να ερμηνεύσει τη συμβολοσειρά ως " " Eat at Joe » , « με ό, τι μετά τη δεύτερη απόστροφο ως εσφαλμένη . Το κείμενο που ακολουθεί δεν διορθώσει το πρόβλημα :

INSERT INTO COMPANY_TABLE ( tag_line ) ΑΞΙΕΣ "Eat at Τζο - Είναι καλό φαγητό ! " ?

Αυτό θα μπορούσε να λειτουργήσει αν το κείμενο είχε μόνο μία απόστροφο ανάμεσα σε διπλά εισαγωγικά , αλλά το κείμενο αυτό έχει δύο . Επίσης , επειδή μερικοί Web- page γλώσσες προγραμματισμού χρησιμοποιούν οι ίδιοι διπλά εισαγωγικά , μπορεί να θέλετε να αποφύγετε τη χρήση τους σε SQL σας .
Εικόνων Double Απόστροφοι και Backslash Escape
Η

λύση της MySQL είναι να ερμηνεύσει δύο αποστρόφους σε μια σειρά - '' - ως ένα ενιαίο χαρακτήρα των δεδομένων απόσπασμα . Ένας χαρακτήρας backslash , ή " \\ ", αμέσως πριν από μια απόστροφο σε δεδομένα που έχει το ίδιο αποτέλεσμα . MySQL αντιμετωπίζει το συνδυασμό backslash και άλλους ειδικούς χαρακτήρες , όπως μια ακολουθία διαφυγής , δημιουργώντας ουσιαστικά ένα χαρακτήρα από τα δύο . Και τα δύο από τα ακόλουθα παραδείγματα λύσει το πρόβλημα :

INSERT INTO COMPANY_TABLE ( tag_line ) ΑΞΙΕΣ « Eat at Joe '' s - Το '' s Good Food ! " ?

INSERT INTO COMPANY_TABLE ( tag_line ) ΑΞΙΕΣ « Eat at Joe \\ ' s - θα \\ ' s Good Food ! " ?

Όταν γράφετε προγράμματα τα οποία δημιουργούν καταστάσεις MySQL , θα πρέπει πρώτα να σαρώσει όλες τις χορδές κείμενο σας και να προσθέσετε είτε μια απόστροφο ή backslash πριν από οποιαδήποτε αποστρόφους στα δεδομένα σας .

Η addslashes λειτουργία
Η

Η PHP Web γλώσσα προγραμματισμού , συχνά χρησιμοποιείται σε συνδυασμό με MySQL , έχει μια λειτουργία addslashes ενσωματωμένο για να μετατρέψει αυτόματα αποστρόφους να backslash - απόστροφο ζεύγη . Απλά να εκτελέσει τη λειτουργία στις χορδές των δεδομένων σας, όπως σε αυτό το παράδειγμα :

$ tag_line = addslashes ( tag_line $ ) ?
Εικόνων Stripslashes
Η

Μόλις Λειτουργία έχουν μετατραπεί σε αποστρόφους μεταβλητών δεδομένων για backslash - αποστρόφους , μπορεί να χρειαστεί να τα μετατρέψετε πίσω σε κανονικό δεδομένα . Η λειτουργία stripslashes PHP εκτελεί το έργο αυτό για σας σε ένα μόνο βήμα . Χρησιμοποιήστε το όπως στο ακόλουθο παράδειγμα :

$ tag_line = stripslashes ( $ tag_line ) ?
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα