使用一个INSERT语句插入两行?

时间:2010-01-06 18:21:48

标签: php sql-server tsql

以下此功能如何在我的数据库中插入两行?

//called like
save_session_db($_SESSION['user_id']);

function save_session_db($session){
    include('includes/db-connect.php');
    $connectionInfo = array( 'Database' => 'Belior');
    $conn = sqlsrv_connect( $serverName, $connectionInfo);
    if($conn){
        $date = date('l jS \of F Y');
        $_SESSION['model_start_date'] = $date;
        $tsql = "INSERT INTO User_Session (user_id, date_created) VALUES ('$session', '$date')";
        echo 'insert--<br>'.$tsql;
        if(sqlsrv_query($conn, $tsql))  {
            return true;
        }else{
            return false;
        }
    }else{
           return false;
    }
    sqlsrv_close($conn);
}

不会从其他任何地方调用此函数。当我评论上面的函数调用时,没有任何内容插入到DB中。并且PHP不会抱怨无效的函数调用,这意味着它不会从其他任何地方调用。

当我取消注释函数调用时,插入两行!!

感谢大家的帮助。我确信它很简单,我无法弄明白。它之前正在工作,我不记得我调整了什么。

更新

看起来好像每个页面都加载了两次?!为什么?我在任何地方都没有htaccess文件吗?

127.0.0.1 - - [06/Jan/2010:18:34:00 +0000] "GET /webs/end/create.php HTTP/1.1" 200 44830
127.0.0.1 - - [06/Jan/2010:18:34:06 +0000] "GET /webs/end/create.php HTTP/1.1" 200 44830

2 个答案:

答案 0 :(得分:4)

调用此函数的代码是否可能被调用两次?例如,如果您的页面由于某种原因重新加载两次? 尝试在调用此函数的代码中添加一些回显。也许你会得到答案。

答案 1 :(得分:2)

如果真的只执行一次,那么它似乎表明服务器上正在发生的事情。例如,表User_Session可以具有添加额外行的触发器。虽然,这似乎是你可能知道的事情。