דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. שם עמודה בעברית בMYSQL

שם עמודה בעברית בMYSQL

מתוזמן נעוץ נעול הועבר תכנות
20 פוסטים 9 כותבים 330 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • שואףש מנותק
    שואףש מנותק
    שואף
    כתב ב נערך לאחרונה על ידי שואף
    #1

    מנסה להכניס תוכן לטבלא MYSQL שהשמות של העמודות בעברית, מחזיר לי שגיאות
    זה הבניה של הטבלא

    CREATE TABLE `form` (
      `lorem` int(11) DEFAULT NULL,
      `ipsum` int(11) DEFAULT NULL,
      `שם_פרטי'` varchar(10) CHARACTER SET utf8mb4 DEFAULT NULL,
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    וזה הפקודה שלי

    $columnA = 'שם_פרטי';
    $columnA = 'lorem';
    $columnB = 'ipsum';
    $text = "INSERT INTO form ($columnA, $columnB)  VALUES (:$columnA, :$columnB)";
    $array = array($columnA => 1, $columnB => 2);
    
    try {
        $requete = $objectSQL->prepare($text);
        echo $requete->execute($array);
        $requete->fetch();
        $requete->closeCursor();
    } catch (Exception $e) {
        echo $e->getMessage();
    }
    

    וזה מה שזה מחזיר

    Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'שם_פרטי') VALUES ('John')' at line 1
    

    יש רעיון איך לפתור את זה?
    תודה רבה

    ליצירת קשר: admin@i-call.me

    הידד! גישה למייל גם בלי מחשב ואינטרנט!

    dovidD WWWW 2 תגובות תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      השיב לשואף ב נערך לאחרונה על ידי
      #2

      @שואף אמר בשם עמודה בעברית בMYSQL:

      $objectSQL->exec("INSERT INTO form ('שם_פרטי') VALUES ('John')");

      צריך להיות ככה:

       $objectSQL->exec("INSERT INTO form (`שם_פרטי`) VALUES ('John')");
      

      תבדוק ואם לא עובד תביא נוסח עדכני של שגיאה.

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      תגובה 1 תגובה אחרונה
      1
      • שואףש מנותק
        שואףש מנותק
        שואף
        כתב ב נערך לאחרונה על ידי שואף
        #3

        לא כתבתי טוב את הקוד שלי, עכשיו ערכתי
        אני משתמש בPREPARE, ושולח את הערכים כARRAY.

        כשהcolumnA הוא באנגלית, הכל תקין, אבל אם אני משנה את זה לעברית (שם_פרטי), זה נופל

        אולי יש הגדרה מיוחדת לשים בשביל שמות עמודות בעברית? או להחליף קידוד? ניסיתי UTF8 ולא עזר

        ליצירת קשר: admin@i-call.me

        הידד! גישה למייל גם בלי מחשב ואינטרנט!

        תגובה 1 תגובה אחרונה
        0
        • WWWW מנותק
          WWWW מנותק
          WWW
          השיב לשואף ב נערך לאחרונה על ידי
          #4

          @שואף אמר בשם עמודה בעברית בMYSQL:

          שם_פרטי'

          זה בכוונה הגרש?

          WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

          תגובה 1 תגובה אחרונה
          0
          • מנצפךמ מנותק
            מנצפךמ מנותק
            מנצפך
            כתב ב נערך לאחרונה על ידי
            #5

            אין לי מושג האם זה פרויקט חדש או משהו ישן שאתה צריך להיכנס לתוכו, אבל זו ממש טעות להשתמש בשמות בעברית.
            משבש את החיים.

            תגובה 1 תגובה אחרונה
            3
            • ח מנותק
              ח מנותק
              חוקר
              כתב ב נערך לאחרונה על ידי חוקר
              #6

              לגבי החלק הטכני:
              העליתי כאן מחלקה פשוטה לשימוש בMySQL וכן MSSQL.
              במחלקה זו השתמשתי ע"י קשירת הנתונים, וזה עובד חלק גם בנתונים בעברית.
              אך יש לקחת נקודה פשוטה בחשבון, ישנו תו

              `
              

              וישנו

              '
              

              ה

              `
              

              מיועד עבור חיתום שמות של עמודות וטבלאות וכדומה בnysql וגרש מיועד לחתימת מחרוזת.
              אם אכתוב בשאילתה

              SELECT * FROM `users` WHERE 'columnA' = :A: 
              

              השרת לא יחפש עמודה בשם columnA אלא האם מחרוזת 'columnA' שווה את החיפוש המבוקש.
              ולכן חייבים לחתום דווקא כך

              `columnA`
              

              ואז השרת מזהה אותו כעמודה.
              ולכן אם רוצים לקשור את שם העמודה עצמו זה בעיה, כי הקשירה מכניסה את הערך לשאילתה כמחרוזת (היות והיא מקבלת מחרוזת) לדוגמא

              SELECT * FROM `users` WHERE :colName = :val
              

              יתורגם ל:

              SELECT * FROM `users` WHERE 'id' = 1
              

              ולכן זה לא יעבוד.
              כי 'id' אינו שוה 1.

              בחלק ההשקפתי, אני מסכים שתיכנות כדאי לעשות הכל באנגלית כי הוא יותר נתמך, וכו'.
              אבל לא לזלזל בשימוש בעברית, למרות שאני משתדל לא להצטרך להגיע לעברית, אבל יצא לי פה ושם שהייתי צריך לעשות דברים בעברית, וזה לא היה בעייתי לא בPHP, לא בMYSQL, וגם לא בAPI לדפדפן כשהמערך JSON משתמש במפתחות בעברית.
              וכהנה רבות.
              ישנו בתודעה של מפתחים שאין להשתמש בעברית, אבל אם באמת תוכנה/שפה זו כן תומכת בעברית, אז מה באמת הבעיה???

              מנצפךמ תגובה 1 תגובה אחרונה
              2
              • upsilon01U מנותק
                upsilon01U מנותק
                upsilon01
                כתב ב נערך לאחרונה על ידי
                #7

                עדיף לכתוב באנגלית
                אם חייבים עברית אפשר לעשות alias

                SELECT column_name AS [עמודה]
                
                תגובה 1 תגובה אחרונה
                0
                • שואףש מנותק
                  שואףש מנותק
                  שואף
                  כתב ב נערך לאחרונה על ידי
                  #8

                  תודה לכולם
                  מצאתי פיתרון פשוט מאוד, למרות שלא הבנתי עד הסוף למה הוא עובד...
                  הבעייה היתה שהייתי משתמש בקוד כזה

                  $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);
                  

                  ועכשיו הכל עובד תקין.

                  ליצירת קשר: admin@i-call.me

                  הידד! גישה למייל גם בלי מחשב ואינטרנט!

                  ח תגובה 1 תגובה אחרונה
                  0
                  • מנצפךמ מנותק
                    מנצפךמ מנותק
                    מנצפך
                    השיב לחוקר ב נערך לאחרונה על ידי
                    #9

                    @חוקר אמר בשם עמודה בעברית בMYSQL:

                    ישנו בתודעה של מפתחים שאין להשתמש בעברית, אבל אם באמת תוכנה/שפה זו כן תומכת בעברית, אז מה באמת הבעיה???

                    חד משמעית, זה לא מקצועי. מסרבל משפטי קוד והערות.

                    yossizY ח 2 תגובות תגובה אחרונה
                    1
                    • yossizY מנותק
                      yossizY מנותק
                      yossiz
                      השיב למנצפך ב נערך לאחרונה על ידי
                      #10

                      @מנצפך אמר בשם עמודה בעברית בMYSQL:

                      זה לא מקצועי

                      למה זה אמור להפריע למישהו? נגיד למשל בישיבה על קברו, האם איכפת למישהו אם הקוד נראה מקצועי? העיקר שיעבוד טוב.
                      ברור שקוד שמשותף בין כמה מפתחים יותר טוב שיהיה עקביות בין כולם והשפה הגלובלית לזה הוא אנגלית.

                      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                      upsilon01U תגובה 1 תגובה אחרונה
                      1
                      • ח מנותק
                        ח מנותק
                        חוקר
                        השיב לשואף ב נערך לאחרונה על ידי
                        #11

                        @שואף אמר בשם עמודה בעברית ב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 והפונקציה תחליף אותו לערך שלו לדוגמא 'ישיבה על קברו'

                        תגובה 1 תגובה אחרונה
                        1
                        • ח מנותק
                          ח מנותק
                          חוקר
                          השיב למנצפך ב נערך לאחרונה על ידי
                          #12

                          @מנצפך אמר בשם עמודה בעברית בMYSQL:

                          @חוקר אמר בשם עמודה בעברית בMYSQL:

                          ישנו בתודעה של מפתחים שאין להשתמש בעברית, אבל אם באמת תוכנה/שפה זו כן תומכת בעברית, אז מה באמת הבעיה???

                          חד משמעית, זה לא מקצועי. מסרבל משפטי קוד והערות.

                          מסכים שזה מסרבל, וגם אני לא ממליץ.
                          אבל לפעמים מגיעים מתכנתים עם תפיסות שזה ממש אסור, וזה כבר לא נכון.
                          אסביר על מה אני מגונן
                          יצא לי לעבוד שהייתי צריך לתת API שמציג נתונים על המסך בדפדפן, הנתונים היו אובייקט של שמות של ערים ולכל עיר נתון מספרי שלו.
                          בעיקרון בפרוייקט ההוא שמות הערים היו ידועות מראש, אבל אני הכנתי בצורה להשתמש לפרוייקטים נוספים, ולכן שלחתי פשוט מערך של שם בעברית = את הערך הנוכחי לעיר זה.
                          ואמרתי לה שתעשה לולאה שעוברת על האובייקט ויוצרת אלמנטים שיופיע בהם "ביתר עילית 34%" לדוגמא. וס"ה שהכל יהיה דינאמי.
                          אך זו שטיפלה ב API היית 'מלומדת' לעומתי שאני לא למדתי בשום מקום, היא התעקשה שאין כזה דבר, היא למדה שלא משתמשים במפתחות בעברית, אין ממה לדבר.
                          לכן היה עלינו לעשות עבודה כפולה היא הייתה צריכה להכין מראש אלמנטים עם שמות באנגלית, אני הייתי צריך להוסיף טבלת המרות בשרת של השמות בעברית לשמות קבועים באנגלית (ובכל פרוייקט נוסף אצטרך לטעון הכל מראש).
                          ולמען האמת במצב מסוג זה, זה לדעתי סתם תפיסה משונה, ואסביר למה, כי ניחא כשאתה כותב בתוך הקוד שמות משתנים בעברית, זה אכן מסתרבל מכיון הכתיבה וכדומה, אבל כאן הכל נלקח מתוך הטבלה בשרת שבין כך השמות של הערים מאוחסנים בעברית, ובקוד עצמו לא בשרת ולא בדפדפן אין רמז קל לעברית, כי אתה מעביר לולאה כמו

                          for(let i in obj){ //code}
                          

                          ה i מקבל את ערכן העברי בצורה דינאמי.
                          אז מה זה אחרת מכאשר הערך עצמו בעברית לכאשר המפתח בעברית כשאר אין לזה שום שום שינוי ורמז לקוד בעברית?
                          בקיצור לא צריך להיות מקובע שאין להשתמש בעברית לשום דבר, אך ודאי שקוד תקין יותר קל כשהוא באנגלית נקיה.

                          תגובה 1 תגובה אחרונה
                          3
                          • שואףש מנותק
                            שואףש מנותק
                            שואף
                            כתב ב נערך לאחרונה על ידי
                            #13

                            זה מאוד מאוד לא מקצועי.
                            אבל בפרויקט הזה ניתן לומר שלא היתה לי כל כך ברירה. קשה להסביר למה.

                            ליצירת קשר: admin@i-call.me

                            הידד! גישה למייל גם בלי מחשב ואינטרנט!

                            תגובה 1 תגובה אחרונה
                            0
                            • upsilon01U מנותק
                              upsilon01U מנותק
                              upsilon01
                              השיב לyossiz ב נערך לאחרונה על ידי
                              #14

                              @yossiz
                              זה לא רק עניין של "נראה מקצועי"
                              יש הרבה בעיות של קידוד בעברית
                              שאתה מעלה פרויקט לשרת בלחץ של זמן
                              ופתאום יש שגיאות קומפיליציה, זה לא נחמד
                              מנסיון (לא קוד שלי...)

                              תגובה 1 תגובה אחרונה
                              1
                              • מנצפךמ מנותק
                                מנצפךמ מנותק
                                מנצפך
                                כתב ב נערך לאחרונה על ידי
                                #15

                                מי שיראה את הקוד שלי יראה הרבה חוסר מקצועיות, שנובעת בעיקר מרצון לקצר תהליכים ולשנות את האפליקציה במהירות לפי צרכים חדשים, אבל בחירת של שם עמודה בעברית זה דבר מיותר, כי בכל מקרה נותנים שם, וזה לא מקצר איזשהו תהליך או איזשהו קוד, לפעמים זה נובע מחוסר היכרות של מתכנת עם השפה, אבל אדרבה, זה דבר שיכניס אותו וירגיל אותו בשפה.

                                תגובה 1 תגובה אחרונה
                                0
                                • ב מנותק
                                  ב מנותק
                                  ב.ל
                                  כתב ב נערך לאחרונה על ידי ב.ל
                                  #16

                                  קופץ על האשכול.
                                  [חדש בתחום..ואולי התשובה ממש פשוטה..]
                                  מה באמת הפתרון כשהנתון הוא בעברית ואני רוצה להמיר אותו למשהו אחר
                                  לדוגמה טו =15 טז =17
                                  וכן כשהנתון הוא מספר ואני חייב שהוא עצמו יהיה המשתנה והרי א"א להציב מספר בתור משתנה

                                  ליצירת קשר - baruchlamdan@gmail.com

                                  nigunN תגובה 1 תגובה אחרונה
                                  0
                                  • nigunN מנותק
                                    nigunN מנותק
                                    nigun
                                    השיב לב.ל ב נערך לאחרונה על ידי
                                    #17

                                    @ב-ל
                                    לא צריך לקפוץ על האשכול, אפשר לפתוח חדש
                                    בכל מקרה לגבי השאלה הראשונה שלך כבר דובר כאן
                                    ולגבי השאלה השניה
                                    לא ברור למה אתה צריך שהוא יהיה המשתנה?

                                    מייל: nigun@duck.com

                                    ב תגובה 1 תגובה אחרונה
                                    0
                                    • ב מנותק
                                      ב מנותק
                                      ב.ל
                                      השיב לnigun ב נערך לאחרונה על ידי ב.ל
                                      #18

                                      @nigun
                                      התכוונתי שאני רוצה שאם המשתמש יקליד טו אז יוצג לו נתון לו מסוים וכן אם יקליד 33 ינתן לו נתון אחר
                                      דהיינו ש טו שווה A וכן 33 שווה B
                                      לדוגמה גימטרייה אני רוצה להגדיר שהאות ע' שווה 70 וכן להפך 80 שווה האות פ'

                                      ליצירת קשר - baruchlamdan@gmail.com

                                      nigunN תגובה 1 תגובה אחרונה
                                      0
                                      • nigunN מנותק
                                        nigunN מנותק
                                        nigun
                                        השיב לב.ל ב נערך לאחרונה על ידי
                                        #19

                                        @ב-ל
                                        הייתי רוצה לפתוח לזה נושא חדש
                                        אבל אני לא מבין מה בדיוק אתה מתכוון🙄
                                        אם אתה רוצה שהמשתמש יכתוב "שלום" ויוצג לו המילה "עולם"?
                                        אם מדובר בכמות קטנה של ערכים? אתה עושה לולאה IF.
                                        ואם זה כמות גדולה של ערכים?
                                        אתה יכול לעשות מסד נתונים עם כל הנתונים, שבעמודה A אתה כותב "שלום" בעמודה B "עולם",
                                        ואתה מחפש כל מה שהמשתמש כותב בעמודה A ,ומחזיר את התוצאה של B.

                                        מייל: nigun@duck.com

                                        dovidD תגובה 1 תגובה אחרונה
                                        0
                                        • dovidD מנותק
                                          dovidD מנותק
                                          dovid ניהול
                                          השיב לnigun ב נערך לאחרונה על ידי dovid
                                          #20

                                          @nigun התשובה שלך שגויה.
                                          לא קופצים מif שמתאים גג למספר ספרתי ל"מסד נתונים" שזה לא פתרון קוד אלא דרך שונה לגמרי למטרות שונות לגמרי.
                                          בדרך יש עוד כמה מבני נתונים בשפות תכנות שמתאימים בלעיה.
                                          @ב-ל לא מובן מה הקשר לאשכול (שהרי השאלה קיימת גם בלועזית וגם אם היה ניתן לקרוא למשתנים בשמות מספריים זה לא היה עוזר לגימטריה). כמו"כ לא צייינת איזה שפה אתה כותב.
                                          אני מעודד אותך לפתוח נושא חדש לעניין, ועדיף לפעול ככה כמה שיותר.

                                          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                          בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                          תגובה 1 תגובה אחרונה
                                          3

                                          בא תתחבר לדף היומי!
                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

                                          • התחברו או הירשמו כדי לחפש.
                                          • פוסט ראשון
                                            פוסט אחרון
                                          0
                                          • דף הבית
                                          • קטגוריות
                                          • פוסטים אחרונים
                                          • משתמשים
                                          • חיפוש
                                          • חוקי הפורום