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

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

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

בעיה באחסון נתונים ב mysql

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

    אני מנסה להכניס נתונים ל mysql אבל אני מקבל שגיאה Fatal error: Uncaught PDOException: SQLSTATE[42000]: 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, ניסיתי להכניס ערכים רגילים וזה עבד, עד שמצאתי שהוא נתקע בערכים הבאים
    67001-1-#
    ת. רכבת יבנה מערב-יבנה<->ת. רכבת יבנה מזרח-יבנה-1#
    2א
    ההגדרה של השדות 1 ו 3 הם כ TEXT ושל שדה 2 הוא כ LONGTEXT
    איך אני יכול להכניס את הנתונים הנ"ל?

    תגובה 1 תגובה אחרונה
    0
    • dovidD מחובר
      dovidD מחובר
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #2

      תמיד, בכל שאלה, תכלול את הכלי או את הפקודה או את הקוד שחוללו לך את הבעיה.

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

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

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

        @dovid

        $a = $data[0];
            
                echo $a ."<br>";    
                $b = $data[1];    
                echo $b ."<br>";    
                $c = $data[2];    
                echo $c ."<br>";    
                $d = $data[3];    
                $d = $d."";    
                echo $d ."<br>";    
                $e = $data[4];    
                echo $e ."<br>";    
                $f = $data[5];    
                echo $f ."<br>";    
                $g = $data[6];    
                echo $g ."<br>";    
                echo "<br>";    
                $getInfo = $dbh->query("INSERT INTO routes (route_id,agency_id,route_short_name,route_long_name,route_desc,route_type,route_color)
                VALUES ($a,$b,$c,$d,$e,$f,$g)");
        תגובה 1 תגובה אחרונה
        0
        • chagoldC מנותק
          chagoldC מנותק
          chagold
          כתב ב נערך לאחרונה על ידי chagold
          #4

          תביא כאן את קוד הsql המלא שצריך לרוץ

          דהיינו

          $sql = "INSERT INTO routes (route_id,agency_id,route_short_name,route_long_name,route_desc,route_type,route_color)
                  VALUES ($a,$b,$c,$d,$e,$f,$g)";
          echo $sql;die;
          $getInfo = $dbh->query($sql);
          
          ש תגובה 1 תגובה אחרונה
          1
          • dovidD מחובר
            dovidD מחובר
            dovid ניהול
            כתב ב נערך לאחרונה על ידי dovid
            #5

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

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

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

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

              @dovid במהלך לימודים והתקדמתי לבד עוד קצת

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

                @chagold ככה

                    $getInfo = $dbh->query("INSERT INTO routes (route_id,agency_id,route_short_name,route_long_name,route_desc,route_type,route_color)
                    VALUES ($a,$b,$c,$d,'',$f,'')"); 
                    print_r($getInfo->fetch(PDO::FETCH_ASSOC)); 
                

                ?

                תגובה 1 תגובה אחרונה
                0
                • dovidD מחובר
                  dovidD מחובר
                  dovid ניהול
                  כתב ב נערך לאחרונה על ידי
                  #8

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

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

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

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

                    @dovid הפלט של המשתנים?

                    תגובה 1 תגובה אחרונה
                    0
                    • dovidD מחובר
                      dovidD מחובר
                      dovid ניהול
                      כתב ב נערך לאחרונה על ידי
                      #10

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

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

                      $query = $dbh->prepare("INSERT INTO routes (route_id,agency_id,route_short_name,route_long_name,route_desc,route_type,route_color)
                              VALUES (:route_id,:agency_id,:route_short_name,:route_long_name,:route_desc,:route_type,:route_color)");
                      
                      $params = [
                          route_id => $data[0],
                          agency_id => $data[1],
                          route_short_name => $data[2],
                          route_long_name => $data[3],
                          route_desc => $data[4],
                          route_type => $data[5],
                          route_color => $data[6]
                      ];
                      
                      print_r($params);
                      
                      $query->execute($params);
                      

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

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

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

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

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

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

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

                          @dovid ממש לא נכון
                          אני אכן באמצע לימוד אבל הנכון הוא כן שעדיין לא הגעתי בלימודים לשלב הזה אלא התקדמתי לבד.
                          אתה רואה שבניתי קוד לבד ולא באתי לשאול "איך מכניסים נתונים לטבלת mysql", נכון?
                          המצב שלי כרגע שאני מבין איך תיכנות עובד ואת עקרי הדברים אבל לא מכיר לעומק את השפה ולכן למדתי את זה לבד מאתרים וכו' ואני יודע לבנות קוד אבל הבעיה שלי כמו שאפשר לראות ברוב שאלותי במקרה של שגיאה להבין מה קורה
                          ניסיתי לחפש קודם באינטרנט ורק הסתבכתי.
                          אני מבין את תחושתך ואת מה שהוביל לזה אבל לכן אני אומר לך שזה לא נכון אלא אני מצליח ובונה לבד קודים רבים, אבל כשאני נתקל בשגיאה הרבה פעמים אני לא מסתדר.
                          אז נכון, יש לי בעיה שיש הרבה פעמים שאני לא מצליח להסתדר עם שגיאות וכו' ואני צריך עזרה
                          חשבתי שפה המקום שיכולים ורוצים לעזור לי, אם טעיתי אנא אמרו לי ואנסה למצוא מקום אחר
                          אבל בכל מקרה יש לי בשבילך ולעוד כמה אנשים הכרת הטוב ענקית כי עזרתם לי וקידמתם אותי בהרבה!
                          תודה רבה על מה שעזרתם לי עד כה!

                          תגובה 1 תגובה אחרונה
                          2
                          • dovidD מחובר
                            dovidD מחובר
                            dovid ניהול
                            כתב ב נערך לאחרונה על ידי
                            #13

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

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

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

                            ש 2 תגובות תגובה אחרונה
                            1
                            • ש מנותק
                              ש מנותק
                              ששא
                              השיב לdovid ב נערך לאחרונה על ידי
                              #14

                              @dovid ניסיתי, אבל משום מה הוא מקבל את השורות של הפרמטרים כקבועים, והוא נותן לי את השגיאה הבאה
                              Fatal error: Uncaught Error: Undefined constant "route_id" in /var/www/your_domain/csv.php:64 Stack trace: #0 {main} thrown in /var/www/your_domain/csv.php on line 64
                              צריך להגדיר את זה כמשתנה?

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

                                סליחה, אני לא עטפתי את השמות במרכאות, תחליף את הקטע הרלוונטי:

                                $params = [
                                    'route_id' => $data[0],
                                    'agency_id' => $data[1],
                                    'route_short_name' => $data[2],
                                    'route_long_name' => $data[3],
                                    'route_desc' => $data[4],
                                    'route_type' => $data[5],
                                    'route_color' => $data[6]
                                ];
                                

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

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

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

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

                                  תגובה 1 תגובה אחרונה
                                  2
                                  • dovidD מחובר
                                    dovidD מחובר
                                    dovid ניהול
                                    כתב ב נערך לאחרונה על ידי dovid
                                    #17

                                    @ששא כשאתה שותל משתנים, נהיה טקסט ארוך שאתה מגיש כפקודת SQL. המשתנים אמורים מבחינתך להיות ערכים, אבל הם עלולים לפעמים להכיל פקודות SQL ולהצטרף לשרשור הפקודה (לעיתים אפילו תרצה את זה כי יש לך למשל תנאי מותנה וכדומה).
                                    אולם בקוד שכתבנו אתה לא מגיש לפקודה טקסט "מת", אלא שם שומרי מקום בערכים לומר פה אמור להיות ערך X ופה ערך Y, ובנפרד אתה מביא רשימת ערכים. ממילא הפקודה יודעת שלא אמור (ואף אסור שיהיה) בערכים הללו כל סממן של פקודה או תחביר, כי הם כל כולם בבחינת ערך.
                                    אני מנחש שהקוד שכתבת זה עבור הכנסה של הCSV. אם ככה אתה מרויח גם מהירות, כי בתצורה הזאת של הכנת פרמטרים מראש הפקודה עובדת הרבה יותר מהר (בלולאה תחזור רק על על הexecute ולא על הprepare).

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

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

                                    תגובה 1 תגובה אחרונה
                                    2
                                    • שמואל4ש מנותק
                                      שמואל4ש מנותק
                                      שמואל4
                                      השיב לdovid ב נערך לאחרונה על ידי
                                      #18
                                      פוסט זה נמחק!
                                      תגובה 1 תגובה אחרונה
                                      0

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

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

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