MySQL לעומת MySQLi מ PHP

MySQL לעומת MySQLi מ PHP.

מבנה מונחה עצמים

MySQLi מספק קבוצה של פונקציות עבור מבנה קוד עם סגנון פרוצדורלי כדי להפוך את המעבר MySQL קל יותר. עם זאת, הוא גם מספק פונקציונליות באמצעות קבוצה של כיתות מונחה עצמים. השימוש בסגנון מונחה עצמים יכול להפוך את האינטגרציה MySQL מתאים יותר תכונות מונחה עצמים של PHP גירסה 5 ולעתים קרובות מבטלת את הצורך ליצור משתנים נוספים כדי לתמוך פעולות MySQL ומשימות. לדוגמה, הבא מציג את הקוד כדי להתחבר לשרת מסד נתונים ולפתוח מסד נתונים ב- MySQL וב- MySQL: MySQL: $ dbc = mysql_connect ("localhost", "user", "password"); $ db = mysql_select_database ("מסד נתונים");

MySQLi: $ db = mysqli חדש ("localhost", "משתמש", "סיסמה", "מסד נתונים");

הוראות מוכנות

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

$ stmt = $ db-> הכנה ("INSERT IN PEOPLE (FullName, Email) ערכים (?, ?), $ stmt-> bind_param (" ss ", $ fullname, $ email); $ fullname =" John Johnson "; $ $ = "[email protected]"; $ stmt-> ביצוע (); $ fullname = "מרי ג'ונסון"; $ email = "[email protected]"; $ stmt-> ביצוע (); $ stmt-> סגור ();

שיפורים יעילות

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

עסקאות

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