אני לא יכול להכניס Apostrophes ב- MySQL
מפריד האפוסטרופה
בגירסת SQL של MySQL, ההתחלה והסיום של מחרוזת מסומנים במרכאות בודדות או במרכאות כפולות. שתי הדוגמאות הבאות תקפות:
INSERT INTO COMPANY_TABLE (company_name) VALUES 'הדוכן';
INSERT INTO COMPANY_TABLE (company_name) VALUES "The Fish Shack";
עם זאת, בדוגמה הבאה יוצרת שגיאה:
INSERT INTO_T_TABLE (tag_line) VALUES "אוכלים אצל ג'ו - זה אוכל טוב!";
SQL מפרש את המחרוזת כמו "תאכל בג'ו", "עם כל דבר אחרי הגרש השני טועה. הטקסט הבא אינו פותר את הבעיה:
INSERT INTO_T_TABLE (tag_line) VALUES "אוכלים אצל ג'ו - זה אוכל טוב!";
זה יעבוד אם לטקסט יש גרש אחד בין המרכאות הכפולות, אבל לטקסט הזה יש שני. כמו כן, בגלל כמה שפות תכנות דף אינטרנט להשתמש במרכאות כפולות, ייתכן שתרצה להימנע משימוש בהם ב- SQL שלך.
האפוסטרופים הכפולים והסרגל המוט
הפתרון נקבע על ידי MySQL לפרש את שני Apostrophes בשורה "", כמו ציטוט יחיד עבור נתוני אופי. באמצעות תו נטוי הפוך, או "\", מיד לפני לגרש בנתונים יש את אותו אפקט. MySQL מתייחס לשילוב של קו נטוי הפוך ותווים מיוחדים אחרים כמו רצף בריחה, יצירת דמות מהשניים. הדוגמאות הבאות פותרות את הבעיה:
INSERT INTO_T_TABLE (tag_line) VALUES "לאכול ב 'ג' ו - זה אוכל טוב! ';
INSERT INTO_T_TABLE (tag_line) VALUES 'אוכלים בג'ו \' s - זה אוכל טוב! ';
בעת כתיבת תוכניות ליצירת משפטים ב- MySQL, הדבר הראשון שיש לעשות הוא לחקור את כל מחרוזות הטקסט ולהוסיף או גרש או קו נטוי הפוך לפני האפוסטרופים בנתונים.
פונקציה Addslashes
שפת התכנות אינטרנט PHP משמש לעתים קרובות בשילוב עם MySQL, זה יש פונקציה בשם addlashes להמיר אוטומטית Apostrophes. כל שעליך לעשות הוא לבצע את הפונקציה של נתוני סוג מחרוזת כמו בדוגמה זו:
$ tag_line = addlashes ($ tag_line);
הפונקציה Stripslashes
ברגע שיש לך להמיר Apostrophes למשתני הנתונים של backslash ו apostrophes, ייתכן שיהיה עליך להמיר בחזרה נתונים רגילים. הפונקציה PHP stripslashes משיגה משימה זו בשלב אחד. השתמש בו כדוגמה הבאה:
$ tag_line = stripslashes ($ tag_line);