好的..我卡住了。我在這裏嘗試了幾個主題的代碼,但仍然不適合我,所以我需要一些幫助。mysql插入在表格行中創建2條記錄
我想記錄用戶是否第一次登錄,並且想要在用戶返回時更新同一記錄。更新部分工作,但是當我的函數第一次執行時,它會插入一個總空白記錄和一個包含變量提供的所有數據的記錄。 last_login列對於第一個vist是NULL,並且很好地用最後一次登錄進行更新。
但我不明白爲什麼第一次登錄創建這些額外的記錄。
下面是函數的代碼,我創建了:
function log_users($userId, $username, $achternaam, $district, $gemeente, $ipaddress)
{
global $connection;
$sql = mysqli_query($connection, "SELECT * FROM logfile_sap WHERE user_id = '{$userId}'");
if(mysqli_num_rows($sql) > 0)
{
$sql = "UPDATE logfile_sap SET last_login = NOW() WHERE user_id = '{$userId}'";
$query = mysqli_query($connection, $sql);
}
else
{
$sql = "INSERT INTO logfile_sap
(user_id, username, achternaam, district, gemeente, ipaddress, first_login)
VALUES
('{$userId}', '{$username}', '{$achternaam}', '{$district}', '{$gemeente}', '{$ipaddress}', NOW())";
$query = mysqli_query($connection, $sql);
}
}
因此,大家可以看到我檢查,如果用戶在logfile_sap表已經存在,如果它不存在,我想插入用戶(其工作,但有一個額外的行),如果用戶已經存在記錄更新。
這是我對需要檢查,並在表格中新增數據頁面的頂部使用的代碼:
<?php log_users($userId, $username, $achternaam, $district, $gemeente, $ipaddress); ?>
我希望有比我;-)
更加美好的想法++++++++++++++++++++++++++++++++++++++++++++
問題已解決。我有一個頓悟!
我調用了我的函數我的if(isset($ _ SESSION ['id']))語句。
在我把它放在if(isset($ _ SESSION ['id']))語句之後,只有一條記錄被插入到表格中!
我認爲你的功能似乎很好。 –
僅供參考,您可以使用INSERT ... ON DUPLICATE KEY UPDATE ...' – Barmar
'INSERT'查詢設置first_login而不是last_login。 – Barmar