Reputation:
I have a simple insert into database command that works and i was wondering how i could count the number of rows inserted into a database. I tried using mysql_affected_rows() but it doesn't do anything. Is there some syntax errors with my code? Thanks in advance.
$sqlRegister = "INSERT INTO `Login_Details` (`User_ID`, `Username`, `Password`, `Email`, `User_Level`, `LoginAttempt`)
VALUES (NULL, '".$username."', '".$pass."', '".$email."', '1', '1');";
$count = mysql_affected_rows(mysql_query($sqlRegister));
echo($count);
Upvotes: -1
Views: 7348
Reputation: 16103
For starters; you are using the affected rows wrong:
mysql_query($sqlRegister);
$count = mysql_affected_rows();
Some functions in php/mysql dont take input, they get the info from the last connection. Also, if you can, start using mysqli or PDO in favor of mysql, mysql is deprecated :)
Apart from that, you can do this to count number of new rows:
$query = "SELECT User_ID FROM Login_Details ORDER BY User_ID DESC LIMIT 1";
$result = mysql_query($query); // execute
$fetch = mysql_fetch_row($result); // fetch, we need this later
/*
HERE YOUR INSERT CODE
*/
// Select all rows bigger than previous found id
$query = "SELECT User_ID FROM Login_Details WHERE User_ID>".$fetch[0];
$rows = mysql_num_rows( mysql_query($query) ); // get num of rows
echo $rows;
Another method could be to select the number of rows you have now, do your insert and than do the number of rows again. Subtract first value of second value to get differencet.
A third method is to add a $i++
in your insert loop. This would be the most lightweight option (actually, ++$i
is a tad faster)
Upvotes: 6