Forum und email

mysql_affected_rows

(PHP 4, PHP 5, PECL mysql:1.0)

mysql_affected_rows — מחזיר את מספר השורות שהושפעו בפעולת ה MySQL האחרונה

תיאור

ערך שלם mysql_affected_rows ([ משאב $ מזהה_קישור ] )

mysql_affected_rows() מחזירה את מספר השורות שהושפעו בעקבות שאילתת ה INSERT, UPDATE או DELETE האחרונה על מזהה_קישור . אם מזהה הקישור לא צויין, PHP תחשיב זאת כאילו צויין מזהה הקישור האחרון של mysql_connect().

Note: אם הנכם משתמשים ב transactions, אתם צריכים לקרוא ל mysql_affected_rows() אחרי שאילתת INSERT, UPDATE, או DELETE, ולא אחרי ה - commit.

אם השאילתא האחרונה הייתה שאילתת DELETE ללא פרמטר WHERE, כל הרשומות יימחקו מהטבלה, אבל פונקציה זאת תחזיר אפס.

Note: כשמשתמשים ב UPDATE, MySQL לא יעדכן טורים שערכם החדש זהה לערכם הישן. זה עלול ליצור אפשרות ש mysql_affected_rows() לא תחזיר את המספר האמיתי של מספר השורות שהתאימו, אלא את מספר השורות שהושפעו ריאלית על ידי השאילתא.

mysql_affected_rows() לא פועלת על שאילתות מסוג SELECT; אלא רק על שאילתות אשר משנות רשומות. כדי לקבל את מספר השורות אשר הוחזרו על ידי SELECT, יש להשתמש ב mysql_num_rows().

אם השאילתא האחרונה נכשלה, פונקציה זאת תחזיר -1.

Example#1 שאילתת-מחיקה

<?php
    
/* חיבור אל מסד הנתונים */
    
mysql_pconnect("localhost""mysql_user""mysql_password") or
        die(
"כשלון בחיבור: " mysql_error());

    
/* זה יחזיר את ה המספר הנכון של הרשומות שנמחקו */
    
mysql_query("DELETE FROM mytable WHERE id < 10");
    
printf ("מספר הרשומות שנמחקו: %d\n"mysql_affected_rows());

    
/* ללא פרמטר WHERE בשאילתת ה DELETE, הפונקציה תחזיר 0 */
    
mysql_query("DELETE FROM mytable");
    
printf ("מספר הרשומות שנמחקו: %d\n"mysql_affected_rows());
?>

הדוגמא שלעיל תיצור את הפלט הבא:

מספר הרשומות שנמחקו: 10
מספר הרשומות שנמחקו: 0

Example#2 שאילתת-עדכון

<?php
    
/* חיבור למסד הנתונים */
    
mysql_pconnect("localhost""mysql_user""mysql_password") or
        die(
"כשלון בהתחברות:: " mysql_error());

    
/* עדכון רשומות */
    
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
    
printf ("מספר הרשומות שעודכנו: %d\n"mysql_affected_rows());
mysql_query("COMMIT");
?>

הדוגמא שלעיל תיצור את הפלט הבא:

מספר הרשומות שעודכנו: 10

ראה גם: mysql_num_rows(), mysql_info().