פרק 8: להשתעשע בבסיסי נתונים - GUFE - החזית הכללית והשימושיתמעבר על GUFE: חלק 3sub openDB { #open connection to database my ($DBD,$dbase,$dbuser,$dbpassword)=@_; my $dbh = DBI->connect("dbi:$DBD:$dbase",$dbuser,$dbpassword) || die "could not connect to database!"; return $dbh; } #end openDB יצירת החיבור לבסיס הנתונים הוא פשוט למדי, ומבוצע על ידי השגרה openDB&. כאשר קוראים לשגרה זו שולחים לה ארבעה פרמטרים: פרוטוקול ה DBD בו נשתמש (כמו "mysql" או "ODBC" ), בסיס הנתונים אליו נתחבר ( כמו "Clients"), ואם צריך שם משתמש וסיסמה. מספר בסיסי נתונים, כמו אלו שב MySQL, עלולים להיות מוגנים ולכן לדרוש התחברות (login) . תוכל לראות שהפרמטרים שמועברים לשגרה מסתיימים במשתנה האינטגרלי של Perl _@, שמכיל רשימה של כל הערכים שנשלחו אליו. אם מסיבה כלשהי התקשורת תיפול, השגרה "מתה" ("dies"), משמע יציאה לדפדפן עם הודעת שגיאה. sub sendSQL { #send SQL query my ($sqlstatement,$dbh)=@_; my $sth = $dbh->prepare($sqlstatement); $sth->execute || die("Could not execute SQL statement ... maybe invalid?". "<br>Here is the statement that choked: $sqlstatement"); return $sth; }#end sendSQL השגרהsendSQL& חשובה מאוד עבור GUFE אבל די פשוטה. זאת בגלל שפענוח ועיבוד שאילתות SQL היא העבודה של בסיס הנתונים עצמו. בקיצור, sendSQL& מקבלת את פקודת ה SQL ואת עוגן בסיס הנתונים. ואז, תוך שימוש בתחביר DBI פשוט, היא מכינה ומריצה את פקודת ה SQL בעזרת המנוע של בסיס הנתונים. התוצאה הסופית היא עוגן פקודה, שמוחזר מהשגרה, ושבו נשתמש בעתיד כדי לגשת לנתונים האמיתיים שמוחזרים מבסיס הנתונים כתגובה לשאילתה שלנו. עם עוגן פקודה זה, sth$, נעשה את רוב העבודה שלנו. חלק 2
:GUFI מעבר על
|