2013-11-26 27 views
1

我有一個簡單的插入數據庫命令的工作,我想知道如何計算插入到數據庫中的行數。我嘗試使用mysql_affected_rows(),但它沒有做任何事情。我的代碼是否有一些語法錯誤?提前致謝。PHP - 如何計算插入到數據庫中的行

$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); 
+2

您是否遇到錯誤?你做了什麼來調試呢? –

+4

當然INSERT INTO ... VALUES ...總是會創建一個單行嗎?所以答案是'1'? –

+0

@JohnConde我首先測試了insert語句以確保它能夠工作並將數據添加到數據庫中。然後我回應$ count(在我的腦海裏)會給我提供mysql_affected_rows()函數的值。 – Seatter

回答

6

對於初學者;您正在使用受影響的行錯誤:

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稍微快點)

相關問題