mysql_affected_rows
(PHP 4, PHP 5, PECL mysql:1.0)
mysql_affected_rows — מחזיר את מספר השורות שהושפעו בפעולת ה MySQL האחרונה
תיאור
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().