我有一个简单的insert into database命令,它可以工作,我想知道如何计算插入数据库的行数。我试过使用mysql_affected_rows(),但它没有任何作用。我的代码有语法错误吗?提前谢谢。
$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);
对于初学者;您错误地使用了受影响的行:
mysql_query($sqlRegister);
$count = mysql_affected_rows();
php/mysql中的一些函数不接受输入,它们从上次连接中获取信息。此外,如果可以的话,开始使用mysqli或PDO来支持mysql,mysql不推荐使用:)
除此之外,您还可以这样做来计算新行数:
$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;
另一种方法可能是选择您现在拥有的行数,进行插入,然后再次进行行数。减去第二个值的第一个值得到差值。
第三种方法是在插入循环中添加$i++
这将是最轻量级的选项(实际上,++$i
稍微快一点)