שם עמודה בעברית בMYSQL
-
@שואף אמר בשם עמודה בעברית בMYSQL:
תודה לכולם
מצאתי פיתרון פשוט מאוד, למרות שלא הבנתי עד הסוף למה הוא עובד...
הבעייה היתה שהייתי משתמש בקוד כזה$text = "INSERT INTO form ($columnA, $columnB) VALUES (:$columnA, :$columnB)"; $array = array($columnA => 1, $columnB => 2);
אבל החלפתי לזה
$text = "INSERT INTO form ($columnA, $columnB) VALUES (?, ?)"; $array = array(1, 2);
ועכשיו הכל עובד תקין.
ההא, לא שמנו לב
הבעיה הייתה לכאורה מאוד פשוטה, את לפונקציית הקשירה אתה אמור להעביר את השם שהכנסת לשאילתה שווה את הערך שלו, ולא את המשתנה עצמו.
לדוגמא:$text = "INSERT INTO form ($columnA, $columnB) VALUES (:$columnA, :$columnB)"; $array = array('$columnA' => 1, '$columnB' => 2);
ולכן עדיף בכלל שתוריד את סימן הדולר $ משם, שלא להתבלבל עם משתנה אמיתי
ועדיף לעשות כך:$text = "INSERT INTO form ($columnA, $columnB) VALUES (:columnA, :columnB)"; $array = array('columnA' => 1, 'columnB' => 2);
הרעיון של הקשירה הוא שאתה שם טקסט עבור שם דינאמי ולפניו נקודתיים, ואתה מעביר לפונצקיה את הטקסט => הערך שאתה רוצה באמת במקום הטקסט.
זאת אומרת אתה כותב בשאילתה:columnA
והפונקציה תחליף אותו לערך שלו לדוגמא'ישיבה על קברו'
-
@מנצפך אמר בשם עמודה בעברית בMYSQL:
@חוקר אמר בשם עמודה בעברית בMYSQL:
ישנו בתודעה של מפתחים שאין להשתמש בעברית, אבל אם באמת תוכנה/שפה זו כן תומכת בעברית, אז מה באמת הבעיה???
חד משמעית, זה לא מקצועי. מסרבל משפטי קוד והערות.
מסכים שזה מסרבל, וגם אני לא ממליץ.
אבל לפעמים מגיעים מתכנתים עם תפיסות שזה ממש אסור, וזה כבר לא נכון.
אסביר על מה אני מגונן
יצא לי לעבוד שהייתי צריך לתת API שמציג נתונים על המסך בדפדפן, הנתונים היו אובייקט של שמות של ערים ולכל עיר נתון מספרי שלו.
בעיקרון בפרוייקט ההוא שמות הערים היו ידועות מראש, אבל אני הכנתי בצורה להשתמש לפרוייקטים נוספים, ולכן שלחתי פשוט מערך של שם בעברית = את הערך הנוכחי לעיר זה.
ואמרתי לה שתעשה לולאה שעוברת על האובייקט ויוצרת אלמנטים שיופיע בהם "ביתר עילית 34%" לדוגמא. וס"ה שהכל יהיה דינאמי.
אך זו שטיפלה ב API היית 'מלומדת' לעומתי שאני לא למדתי בשום מקום, היא התעקשה שאין כזה דבר, היא למדה שלא משתמשים במפתחות בעברית, אין ממה לדבר.
לכן היה עלינו לעשות עבודה כפולה היא הייתה צריכה להכין מראש אלמנטים עם שמות באנגלית, אני הייתי צריך להוסיף טבלת המרות בשרת של השמות בעברית לשמות קבועים באנגלית (ובכל פרוייקט נוסף אצטרך לטעון הכל מראש).
ולמען האמת במצב מסוג זה, זה לדעתי סתם תפיסה משונה, ואסביר למה, כי ניחא כשאתה כותב בתוך הקוד שמות משתנים בעברית, זה אכן מסתרבל מכיון הכתיבה וכדומה, אבל כאן הכל נלקח מתוך הטבלה בשרת שבין כך השמות של הערים מאוחסנים בעברית, ובקוד עצמו לא בשרת ולא בדפדפן אין רמז קל לעברית, כי אתה מעביר לולאה כמוfor(let i in obj){ //code}
ה i מקבל את ערכן העברי בצורה דינאמי.
אז מה זה אחרת מכאשר הערך עצמו בעברית לכאשר המפתח בעברית כשאר אין לזה שום שום שינוי ורמז לקוד בעברית?
בקיצור לא צריך להיות מקובע שאין להשתמש בעברית לשום דבר, אך ודאי שקוד תקין יותר קל כשהוא באנגלית נקיה. -
מי שיראה את הקוד שלי יראה הרבה חוסר מקצועיות, שנובעת בעיקר מרצון לקצר תהליכים ולשנות את האפליקציה במהירות לפי צרכים חדשים, אבל בחירת של שם עמודה בעברית זה דבר מיותר, כי בכל מקרה נותנים שם, וזה לא מקצר איזשהו תהליך או איזשהו קוד, לפעמים זה נובע מחוסר היכרות של מתכנת עם השפה, אבל אדרבה, זה דבר שיכניס אותו וירגיל אותו בשפה.
-
@ב-ל
הייתי רוצה לפתוח לזה נושא חדש
אבל אני לא מבין מה בדיוק אתה מתכוון
אם אתה רוצה שהמשתמש יכתוב "שלום" ויוצג לו המילה "עולם"?
אם מדובר בכמות קטנה של ערכים? אתה עושה לולאה IF.
ואם זה כמות גדולה של ערכים?
אתה יכול לעשות מסד נתונים עם כל הנתונים, שבעמודה A אתה כותב "שלום" בעמודה B "עולם",
ואתה מחפש כל מה שהמשתמש כותב בעמודה A ,ומחזיר את התוצאה של B. -
@nigun התשובה שלך שגויה.
לא קופצים מif שמתאים גג למספר ספרתי ל"מסד נתונים" שזה לא פתרון קוד אלא דרך שונה לגמרי למטרות שונות לגמרי.
בדרך יש עוד כמה מבני נתונים בשפות תכנות שמתאימים בלעיה.
@ב-ל לא מובן מה הקשר לאשכול (שהרי השאלה קיימת גם בלועזית וגם אם היה ניתן לקרוא למשתנים בשמות מספריים זה לא היה עוזר לגימטריה). כמו"כ לא צייינת איזה שפה אתה כותב.
אני מעודד אותך לפתוח נושא חדש לעניין, ועדיף לפעול ככה כמה שיותר.