Forum und email

פונקציות MySQL

הקדמה

פונקציות אלו מאפשרות לך לגשת אל שרתי מסד נתונים מסוג MySQL. עוד מידע אודות MySQL אפשר למצוא בכתובת » https://www.mysql.com/.

תיעוד עבור MySQL ניתן למצוא ב » https://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 נבנתה לתמיכה בתוספת זאת. אתה לא צריך לטעון שום תוספת נוספת על מנת להשתמש בפונקציות אלה.

Warning

התרסקויות ובעיות בהפעלה של PHP עלולות להתרחש כשטוענים תוספת זו יחד עם התוספת recode. ראה את התוספת recode עבור מידע נוסף.

הגדרות הרצה

ההתנהגות של פונקציות אלה מושפעות ע"י ההגדרות בתוך php.ini.

אפשרויות קונפיגורציה של MySQL
שם ברירת מחדל בר שינוי
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
לפרטים נוספים והגדרת הקבועים PHP_INI_*, עיין בפונקציה ini_set().

הנה הסבר קצר על הנחיות ההגדרה.

mysql.allow_persistent בוליאני

האם לאפשר קישורים רציפים אל MySQL.

mysql.max_persistent ערך שלם

המספר המקסימלי של קישורים רציפים ל MySQL עבור תהליך (process)

המספר המקסימלי של קישורים ל MySQL עבור תהליך (process) כולל קישורים רציפים

mysql.default_port מחרוזת

ברירת המחדל של מספר פורט ה TCP שבו יש להשתמש כאשר מתחברים ל MySQL ולא מציינים לאיזה פורט להתחבר. אם לא מציינים אף ברירת מחדל, הערך יילקח ממשתנה הסביבה MYSQL_TCP_PORT, מהערך mysql-tcp בקובץ /etc/services או מקבוע זמן ההידור MYSQL_PORT, על פי סדר זה. מהדורת חלונות תשתמש רק בקבוע MYSQL_PORT.

mysql.default_socket מחרוזת

שם ה socket שבו יש להשתמש כשמתחברים אל שרת מסד נתונים מקומי, אם לא צויין אף שם socket אחר.

mysql.default_host מחרוזת

שרת ברירת המחדל שאליו יש להתחבר כשמתחברים למסד נתונים ולא מצייינים אף כתובת של שרת. פרמטר זה אינו תקף כש PHP במצב safe mode.

mysql.default_user מחרוזת

משתמש ברירת המחדל שבו יש להשתמש כשמתחברים אל שרת מסד נתונים ולא צויין שם משתמש. פרמטר זה אינו תקף כש PHP במצב safe mode.

mysql.default_password מחרוזת

סיסמת ברירת המחדל שבה יש להשתמש כדי להתחבר לשרת מסד הנתונים אם לא צויינה סיסמא. פרמטר זה אינו תקף כש PHP במצב safe mode.

mysql.connect_timeout ערך שלם

זמן המתנה מקסימלי בשניות לחיבור. בלינוקס, זמן זה גם משמש עבור ההמתנה לקבלת התשובה הראשונה מהשרת.

סוגי משאבים

ישנם שני סוגי משאבים שתוספת ה MySQL משתמשת בהם. האחד הוא מזהה הקישור של חיבור למסד הנתונים, והשני הוא משאב שמחזיק תוצאה של שאילתא למסד הנתונים.

קבועים מוגדרים מראש

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

החל מגירסא 4.3.0 של PHP, אפשר לציין דגלי-לקוח נוספים עבור הפונקציה mysql_connect() והפונקציה mysql_pconnect() הקבועים הבאים מוגדרים:

קבועי MySQL
קבוע תיאור
MYSQL_CLIENT_COMPRESS השתמש בפרוטוקול דחיסה
MYSQL_CLIENT_IGNORE_SPACE אפשר רווחים אחרי שמות פונקציה
MYSQL_CLIENT_INTERACTIVE הרשה interactive_timeout שניות (במקום wait_timeout) של אי פעילות, לפני סגירת החיבור.

הפונקציה mysql_fetch_array() משתמשת בקבועים שונים עבור סוגי התוצאות השונות. הקבועים הבאים מוגדרים:

קבועי משיכה של MySQL
קבוע תיאור
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($resultMYSQL_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);
?>

Table of Contents