logo


פרק 7: המודל MySQL

היכן נמצאת Perl?

למעשה שעטנו דרך כל המאמר בלי לראות שמץ של Perl ועוד בסדרת מאמרים שנקראת ה Perl שאתם צריכים לדעת, לא פחות! החדשות הטובות הם שאתם כבר יודעים את רוב ה Perl שאתם צריך לדעת. בפרק הקודם, למדנו על השימוש במודול ה DBI לבניית פקודות SQL עם Perl. כאן יהיו שינויים קטנים בלבד, ולו בשל העובדה הנפלאה ש DBI היא תוכנית שאינה קשורה לממשק בסיס הנתונים. בפרק הקודם הייתה זו אקסס ובפרק הזה MySQL ול DBI לא איכפת.

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

כמו בפרק הקודם, תצטרכו לאחזר ולהוסיף כמה מודולים של Perl להתקנת ה Perl שלכם, כולם זמינים מתוך העמוד Perl Modules הנמצא בעמוד ההורדה (Downloads Page) באתר המראה של MySQL הקרוב:

אם הגרסה שלך היא 5.004 או ישנה יותר, תצטרך את המודול DataDumper. המודול הקשור DataShowTable הוא אופציונלי אבל מומלץ.

אתם צריכים את המודול ה DBI בלא ספק!

תרצו בוודאי את המודולים Msql-MySQL (הכוללים את המודול DBD:: MySQL).

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

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

#Perl-based Perl/DBI/MySQL example
use DBI;

#open connection to Access database
$dbh = DBI->connect('dbi:mysql:Clients','serf','readonly');

התחביר, עבור הקריאה ל ()DBI connect, צריך להיות ברור. בפרק הקודם הסברנו את הממשק של dbi:odbc. הפעם אנו קוראים ל dbi::mysql, באדיבותו של המודול DBD:: MySQL שהתקנת מתוך חבילת המודולים Msql- MySQL. למען הזהירות, אנו מתחברים לבסיס הנתונים תוך שימוש בחשבון לקריאה בלבד בשם serf, והסיסמה "readonly" , שיצרנו בחלק הזה.

אם סקריפט השאילתה נמצא על מארח אחר מאשר שרת הMySQL, תוכלו לציין את המיקום ברשת של שרת ה MySQL בקריאה ל ()DBI connect. ודאו שלחשבון המשתמש ב MySQL שציינתם יש הרשאה להתחבר מהמארח המרוחק (remote host) עליו הסקריפט רץ!

$dbh = DBI->connect
('dbi:mysql:Clients:fast.server.com','serf','readonly');

הפקודה למעלה תנסה להתחבר לשרת ה MySQL שרץ על המחשב fast.server.com . זאת בהנחה שיציאת ברירת המחדל של שרת ה MySQL היא 3306. תוכלו גם להגדיר יציאה חלופית, כמו 4040:

$dbh = DBI->connect
('dbi:mysql:Clients:fast.server.com:4040','serf','readonly');

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

#Unix-based Perl/DBI/MySQL example
use DBI;

#open connection to Access database
$dbh = DBI->connect('dbi:mysql:Clients','serf','readonly');

#prepare and execute SQL statement
$sqlstatement="SELECT ClientName,ClientEmail FROM billing";
$sth = $dbh->prepare($sqlstatement);
$sth->execute || 
      die "Could not execute SQL statement ... maybe invalid?";

#output database results
while (@row=$sth->fetchrow_array)
 { print "@row\n" }

בנוסף למתודות הסטנדרטיות של DBI, המודול DBD:: MySQL מציע מספר מתודות מיוחדות ל MySQL. יתכן ולא תזדקקו למתודות אלו-וכנראה שלא תצטרכו אותם אם אתם צריכים לכתוב קוד Perl שאינו תלוי בבסיס הנתונים-אבל תוכלו לסקור אותם בסעיף DBI Interface במדריך לMySQL.

צעד שלישי: MySQL בסיס הנתונים שלכם
תוכן עניינים
MySQL עבודה עם בסיסי נתונים:סיכום

אודות
תוכן עניינים
פרק 1: ה Perl שאתם צריכים לדעת
פרק 2: קישור Perl לעמודי הרשת
פרק 3: שמירת מצב
פרק 4: HTML בחטף ותבניות (Templates) רשת
פרק 5: עיבוד וניתוח של עמודי רשת
פרק 6: להשתעשע עם בסיסי נתונים מקוונים:אקסס
פרק 7: המודל MySQL
המודל MySQL  
בואו נכין את MySQL  
הרשאות של MySQL  
בסיס התונים הראשון שלכם ב MySQL  
בסיס הנתונים הראשון שלכם ב MySQL: צעד שני  
בסיס הנתונים הראשון שלכם ב MySQL: צעד שלישי  
היכן נמצאת Perl?  
עבודה עם בסיסי נתונים: MySQL-סיכום  
פרק 8: להשתעשע בבסיסי נתונים - GUFE - החזית הכללית והשימושית
פרק 9: המילניום - ניהול זמן ותאריך
פרק 10: ניהול רשימות והאשים (Hashs)
פרק 11: הפניה להפניה
פרק 12: הכרות עם mod_perl