פורסם 2009 ביוני 1416 שנים <% Set dbCon = Server.CreateObject("ADODB.Connection") dbCon.open "Provider=Microsoft.JET.OLEDB.4.0;Data source=" & Server.mappath("../Data/DataBase.mdb") mySQL = "UPDATE accounts" mySQL = "mySQL & SET UserName='"& Request.Form("username") &"', pass='"& Request.Form("pas1") &"', Email='"& Request.Form("mail1") &"', FirstName='"& Request.Form("firstname") &"', LastName='"& Request.Form("lastname") &"', Gender='"& Request.Form("gender") &"'" mySQL = "WHERE UserName='"& Request.Form("username") &"'" dbCon.Execute(mySQL) dbCon.Close SET dbCon = Nothing%>זה נותן לי שגיעה כזאת - משפט SQL לא חוקי; דרושים הערכים 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' או 'UPDATE'.עזרה :s05:
פורסם 2009 ביוני 1416 שנים תדפיס את המחרוזת mySQL במקום לעשות לה Execute ותראה מה הבעיה.(רמז - בשורה השנייה והשלישית אתה דורך על מה שהגדרת קודם)אגב, תשתמש בפרמטרים של SQL. זה יהפוך את הקוד שלך ליותר מסודר ובטוח.
פורסם 2009 ביוני 1416 שנים מחבר עשיתי דבר כזהmySQL = "UPDATE accounts SET UserName='"& Request.Form("username") &"', pass='"& Request.Form("pas1") &"', Email='"& Request.Form("mail1") &"', FirstName='"& Request.Form("firstname") &"', LastName='"& Request.Form("lastname") &"', Gender='"& Request.Form("gender") &"' WHERE UserName='"& Request.Form("username") &"';" dbCon.Execute(mySQL)זה הסתדר מבחינת התחביר, זה לא מציג שום שגיעה אבל זה לא מעדכן, לא עושה כלום...
פורסם 2009 ביוני 1416 שנים ואתה בודק שהוא באמת מצליח למצוא רשומות שמתאימות לשם המשתמש הזה?תנסה לשלוף לפי שם המשתמש הנתון, ותראה אם אתה מקבל תוצאות.אם זה מצליח, תנסה לעדכן רקaשדה אחד במקום את כולם ותראה אם זה עובד.
פורסם 2009 ביוני 1416 שנים מחבר ואתה בודק שהוא באמת מצליח למצוא רשומות שמתאימות לשם המשתמש הזה?תנסה לשלוף לפי שם המשתמש הנתון, ותראה אם אתה מקבל תוצאות.אם זה מצליח, תנסה לעדכן רקaשדה אחד במקום את כולם ותראה אם זה עובד.לא הבנתי...הדפסתי את הרשומות שהוא מקבל כדי לראות שבאמת יש בהן משהו ויש את כל המידע...יש אולי דברים אחרים שמשפיעים, כמו למשל אם הטופס הוא GET או POST, או שאני צריך לאפשר איפשהו עידכון או משהו דומה...?
פורסם 2009 ביוני 1416 שנים GET/POST קשורים רק לפרוטוקול ה-http בין הדפדפן לשרת, הם לא משפיעים בשום צורה על התקשורת בין השרת לבסיס הנתונים.הכוונה הייתה שלצורך הבדיקה תהפוך את ה-query מ-UPDATE ל-SELECT ותראה שהוא באמת מוצא רשומה שמקיימת את תנאי ה-WHERE ומחזיר נתונים נכונים.
פורסם 2009 ביוני 1416 שנים מחבר כבר יש את זה בדף קודם...כי קודם יש דף שבוא משנים את הפרטים אז שם עשיתי משפט SELECT כדי להכניס את הפרטים של הבן אדם ישר לתוך השדות של הבטלה איפה שעורכים (יענו בשם משתמש השם משתמש כבר מופיע, ואפשר לשנות)וזה עובד בסדר גמור, זה אומר שהוא מוצא את המשתמש המסוים בטבלה ואת השדות שלו...מה זה יכול להיות ?
פורסם 2009 ביוני 1516 שנים GET/POST קשורים רק לפרוטוקול ה-http בין הדפדפן לשרת, הם לא משפיעים בשום צורה על התקשורת בין השרת לבסיס הנתונים.לא משפיעים אבל פה הוא רושם request.form זה אומר שהוא צריך לוודא שהוא שולח את הנתונים בשיטת POST ולא GET מהטופס שמעביר את הנתונים לקובץ הזה.לגבי הקוד אני לא רואה שגיאת תחביר בשאילתת העדכון שלך, תנסה להדפיס את השאילתה לדף ואחר כך להפעיל אותה דרך ה Access, תראה קודם שזה עובד, אם עובד תבדוק שיש לך הרשאות כתיבה לקובץ מסד הנתונים שלך באפליקציה שבנית פה אם גם זה קיים, תנסה לפתוח את ה Connection שלך עם הרשאות לכתיבה אם אני לא טועה אתה עושה את זה ככה dbCon.open "Provider=Microsoft.JET.OLEDB.4.0;Data source=" & Server.mappath("../Data/DataBase.mdb"), 3אם כל הדברים שרשמתי פה לא פתרו לך את הבעיה תחזור לכאן ודווח איפה אתה עומד.
פורסם 2009 ביוני 1516 שנים מחבר הסתדרתי כבר...כנראה שתמיד ניסתי לעדכן שיניתי את השם משתמש, והשם משתמש הוא פרמטר למציאת המשתמש בטבלה ואם אני משנה אותו הוא לא היה מוצא אותו...
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.