mysql insert into在表行

时间:2016-11-14 21:27:48

标签: php mysqli insert

好的..我被困了。我在这里尝试了几个主题的代码,但仍然不适合我,所以我需要一些帮助。

我想记录用户是否第一次登录,并希望在用户返回时更新相同的记录。更新部分可以工作,但是当我的函数第一次执行时,它会插入一个总空白记录和一个记录,其中包含变量提供的所有数据。对于第一个vist,last_login列为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); ?>

我希望有些人比我有更明智的想法; - )

++++++++++++++++++++++++++++++++++++++++++++

问题解决了。我有顿悟!!!

我调用了我的函数OUTSIDE我的if(isset($ _ SESSION [&#39; id&#39;]))语句。

我把它放在if(isset($ _ SESSION [&#39; id&#39;]))语句之后,表中只插入了一条记录!!

1 个答案:

答案 0 :(得分:0)

问题解决了。我有一个顿悟!

我在我的if(isset($_SESSION['id']))语句中调用了我的函数。

我把它放在if(isset($_SESSION['id']))语句后面,表中只插入了一条记录!!