note 96190 added to function.mysql-affected-rows
| From: | info at fedushin dot ru | Date: | Sat, 13 Feb 2010 02:20:56 +0000 |
| Subject: | note 96190 added to function.mysql-affected-rows | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-165930@lists.php.net to get a copy of this message | ||
mysql_affected_rows() DOES NOT count rows affected implicitly through 'ON DELETE CASCADE'
and/or 'ON UPDATE CASCADE' foreign keys.
For example:
CREATE TABLE
types (
type varchar(10) NOT NULL,
PRIMARY KEY (type)
) ENGINE=InnoDB;
CREATE TABLE symbols (
symbol char(1) NOT NULL,
type varchar(10) NOT NULL,
PRIMARY KEY (symbol),
KEY FK_symbol_type (type)
) ENGINE=InnoDB;
ALTER TABLE symbols
ADD CONSTRAINT FK_symbol_type FOREIGN KEY (type) REFERENCES
types (type) ON DELETE CASCADE ON UPDATE CASCADE;
INSERT INTO types VALUES ('Number'), ('Letter');
INSERT INTO symbols VALUES ('1', 'Number'), ('2',
'Number'), ('A', 'Letter'), ('B', 'Letter');
<?php
mysql_query('UPDATE types SET type = "Digit" WHERE type = "Number"');
echo mysql_affected_rows() . '<br>';
mysql_query('DELETE FROM types WHERE type = "Letter"');
echo mysql_affected_rows() . '<br>';
?>
Each query actually affects 3 rows (= 1 type + 2 symbols), but output is:
1
1
----
Server IP: 69.147.83.197
Probable Submitter: 95.221.136.128
----
Manual Page -- http://www.php.net/manual/en/function.mysql-affected-rows.php
Edit -- https://master.php.net/note/edit/96190
Del: integrated -- https://master.php.net/note/delete/96190/integrated
Del: useless -- https://master.php.net/note/delete/96190/useless
Del: bad code -- https://master.php.net/note/delete/96190/bad+code
Del: spam -- https://master.php.net/note/delete/96190/spam
Del: non-english -- https://master.php.net/note/delete/96190/non-english
Del: in docs -- https://master.php.net/note/delete/96190/in+docs
Del: other reasons-- https://master.php.net/note/delete/96190
Reject -- https://master.php.net/note/reject/96190
Search -- https://master.php.net/manage/user-notes.php