PHP / MySQL插入超过1行

时间:2016-09-19 13:28:56

标签: php mysql insert

我在MySQL数据库中插入记录时遇到问题。 它只插入两行或多行记录。 我检查了代码,它不是文件的两倍。 我正在使用自动填充脚本,因为它是用于搜索栏。 当我在通知中检入数据库时​​,相同的搜索查询被插入两次但来自不同的IP地址。 任何帮助将非常感激。

    //Did the member search
if(isset($_GET['searchBar'])){
    $criteria = mysql_real_escape_string($_GET['searchBar']);   
    $timest = time();
    $today = date('Y-m-d');
    $memberid = 0;

    if(isset($_SESSION['MEMBER'])){
        $memberid = $_SESSION['MEMBER'];
    }

    function get_client_ip() {
        $ipaddress = '';
        if (getenv('HTTP_CLIENT_IP'))
            $ipaddress = getenv('HTTP_CLIENT_IP');
        else if(getenv('HTTP_X_FORWARDED_FOR'))
            $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
        else if(getenv('HTTP_X_FORWARDED'))
            $ipaddress = getenv('HTTP_X_FORWARDED');
        else if(getenv('HTTP_FORWARDED_FOR'))
            $ipaddress = getenv('HTTP_FORWARDED_FOR');
        else if(getenv('HTTP_FORWARDED'))
           $ipaddress = getenv('HTTP_FORWARDED');
        else if(getenv('REMOTE_ADDR'))
            $ipaddress = getenv('REMOTE_ADDR');
        else
            $ipaddress = 'UNKNOWN';
        return $ipaddress;
    }

    $mem_ip = get_client_ip();
}
if(isset($_GET['page']))
{
    if (ctype_digit($_GET['page']))
    {
        $pageNum = $_GET['page'];
    }
}
else{
    if($criteria != ""){
   $con=mysqli_connect("localhost","USER","MYPASSWORD","DB");
    mysqli_query($con, "insert into search_queries 
    (search_query, timestamp, member_id, date, member_ip) 
    values 
    ('$criteria', '$timest', '$memberid', '$today', '$mem_ip')");
    }
}

1 个答案:

答案 0 :(得分:1)

首先,不应该使用mysql_query ,因为它已弃用,请阅读更多php.net。但是,只需添加所需数量的附加值,即可实现所需:

INSERT INTO MyTable ( Column1, Column2 ) VALUES
( Value1, Value2 ), ( Value1, Value2 )