פונקציות אלו מאפשרות לך לגשת אל שרתי מסד נתונים מסוג MySQL. עוד מידע אודות MySQL אפשר למצוא בכתובת » http://www.mysql.com/.
תיעוד עבור MySQL ניתן למצוא ב » http://dev.mysql.com/doc/.
על מנת שפונקציות אלו יהיו זמינות, עלייך לקמפל את PHP עם תמיכה ב MySQL.
על ידי שימוש באפשרות הקונפיגורציה --with-mysql[=DIR] הנך מאפשר ל PHP לגשת למסדי נתונים של MySQL. אם אתה משתמש באפשרות זאת מבלי לציין את הנתיב ל MySQL, PHP תשתמש בספריות הלקוח שמצורפות ל PHP. החל מגירסא 4 של PHP, --with-mysql מאופשר בברירת מחדל, כך שאם ברצונך לבטל את התמיכה ב MySQL, אתה חייב להשתמש ב --without-mysql. משתמשים שמריצים אפליקציות אחרות שמשתמשות ב MySQL (לדוגמא, הרצה של PHP גירסא 3 וגירסא 4 בו זמנית כמודולים של אפאצ'י, או שימוש ב auth-mysql) חייבים תמיד לציין את הנתיב של MySQL במקום DIR: --with-mysql=/path/to/mysql. פרמטר זה יכריח את PHP להשתמש בספריות הלקוח שהותקנו על ידי MySQL, ובכך למנוע קונפליקטים.
גרסת ה- Windows של PHP נבנתה לתמיכה בתוספת זאת. אתה לא צריך לטעון שום תוספת נוספת על מנת להשתמש בפונקציות אלה.
התרסקויות ובעיות בהפעלה של PHP עלולות להתרחש כשטוענים תוספת זו יחד עם התוספת recode. ראה את התוספת recode עבור מידע נוסף.
ההתנהגות של פונקציות אלה מושפעות ע"י ההגדרות בתוך php.ini.
שם | ברירת מחדל | בר שינוי |
---|---|---|
mysql.allow_persistent | "On" | PHP_INI_SYSTEM |
mysql.max_persistent | "-1" | PHP_INI_SYSTEM |
mysql.max_links | "-1" | PHP_INI_SYSTEM |
mysql.default_port | NULL | PHP_INI_ALL |
mysql.default_socket | NULL | PHP_INI_ALL |
mysql.default_host | NULL | PHP_INI_ALL |
mysql.default_user | NULL | PHP_INI_ALL |
mysql.default_password | NULL | PHP_INI_ALL |
mysql.connect_timeout | "0" | PHP_INI_SYSTEM |
הנה הסבר קצר על הנחיות ההגדרה.
האם לאפשר קישורים רציפים אל MySQL.
המספר המקסימלי של קישורים רציפים ל MySQL עבור תהליך (process)
המספר המקסימלי של קישורים ל MySQL עבור תהליך (process) כולל קישורים רציפים
ברירת המחדל של מספר פורט ה TCP שבו יש להשתמש כאשר מתחברים ל MySQL ולא מציינים לאיזה פורט להתחבר. אם לא מציינים אף ברירת מחדל, הערך יילקח ממשתנה הסביבה MYSQL_TCP_PORT, מהערך mysql-tcp בקובץ /etc/services או מקבוע זמן ההידור MYSQL_PORT, על פי סדר זה. מהדורת חלונות תשתמש רק בקבוע MYSQL_PORT.
שם ה socket שבו יש להשתמש כשמתחברים אל שרת מסד נתונים מקומי, אם לא צויין אף שם socket אחר.
שרת ברירת המחדל שאליו יש להתחבר כשמתחברים למסד נתונים ולא מצייינים אף כתובת של שרת. פרמטר זה אינו תקף כש PHP במצב safe mode.
משתמש ברירת המחדל שבו יש להשתמש כשמתחברים אל שרת מסד נתונים ולא צויין שם משתמש. פרמטר זה אינו תקף כש PHP במצב safe mode.
סיסמת ברירת המחדל שבה יש להשתמש כדי להתחבר לשרת מסד הנתונים אם לא צויינה סיסמא. פרמטר זה אינו תקף כש PHP במצב safe mode.
זמן המתנה מקסימלי בשניות לחיבור. בלינוקס, זמן זה גם משמש עבור ההמתנה לקבלת התשובה הראשונה מהשרת.
ישנם שני סוגי משאבים שתוספת ה MySQL משתמשת בהם. האחד הוא מזהה הקישור של חיבור למסד הנתונים, והשני הוא משאב שמחזיק תוצאה של שאילתא למסד הנתונים.
הקבועים להלן מוגדרים ע"י תוספת זאת, ויהיו זמינים רק כאשר תוספת זאת או מוקמפלת לתוך PHP או טעונה באופן דינמי בזמן הרצה.
החל מגירסא 4.3.0 של PHP, אפשר לציין דגלי-לקוח נוספים עבור הפונקציה mysql_connect() והפונקציה mysql_pconnect() הקבועים הבאים מוגדרים:
קבוע | תיאור |
---|---|
MYSQL_CLIENT_COMPRESS | השתמש בפרוטוקול דחיסה |
MYSQL_CLIENT_IGNORE_SPACE | אפשר רווחים אחרי שמות פונקציה |
MYSQL_CLIENT_INTERACTIVE | הרשה interactive_timeout שניות (במקום wait_timeout) של אי פעילות, לפני סגירת החיבור. |
הפונקציה mysql_fetch_array() משתמשת בקבועים שונים עבור סוגי התוצאות השונות. הקבועים הבאים מוגדרים:
קבוע | תיאור |
---|---|
MYSQL_ASSOC | הטורים מוחזרים למערך שמכיל את שם השדה בתור אינדקס המערך. |
MYSQL_BOTH | הטורים מוחזרים למערך שמכיל את שם השדה וגם את האינדקס המספרי בתור אינדקס המערך. |
MYSQL_NUM | הטורים מוחזרים למערך שמכיל את האינדקס המספרי לשדות. האינדקס מתחיל ב-0, השדה הראשון בתוצאה. |
דוגמא פשוטה זו מראה לך איך להתחבר, לבצע שאילתא, להדפיס את שורות התוצאה, ולהתנתק ממסד נתונים של MySQL.
Example#1 דוגמה כללית לתוספת ה MySQL
<?php
/* התחברות, ובחירת מסד נתונים */
$link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
or die("כשלון בהתחברות");
print "ההתחברות הצליחה.";
mysql_select_db("my_database") or die("כשלון בבחירת מסד נתונים.");
/* ביצוע שאילתת SQL */
$query = "SELECT * FROM my_table";
$result = mysql_query($query) or die("השאילתא נכשלה.");
/* הדפס תוצאות ב HTML */
print "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
print "\t<tr>\n";
foreach ($line as $col_value) {
print "\t\t<td>$col_value</td>\n";
}
print "\t</tr>\n";
}
print "</table>\n";
/* שחרור סט התוצאה */
mysql_free_result($result);
/* סגירת החיבור */
mysql_close($link);
?>