Php 在数据库中插入唯一的IP地址
我有个问题。我想在数据库中插入每位访问者的ip地址和访问日期,但每次刷新页面或打开新闻时都会插入ip。 我的代码: 新闻控制器:Php 在数据库中插入唯一的IP地址,php,laravel,laravel-4,php-5.3,php-5.4,Php,Laravel,Laravel 4,Php 5.3,Php 5.4,我有个问题。我想在数据库中插入每位访问者的ip地址和访问日期,但每次刷新页面或打开新闻时都会插入ip。 我的代码: 新闻控制器: public function __construct(){ $this->beforeFilter('csrf', array('on'=>'post')); $sIpAddress = Visitors_lib::getIp(); $dDateVisit = time("Y/m/d H:i:s"); $oVisi
public function __construct(){
$this->beforeFilter('csrf', array('on'=>'post'));
$sIpAddress = Visitors_lib::getIp();
$dDateVisit = time("Y/m/d H:i:s");
$oVisitor = new \Visitors();
$bInsert = $oVisitor->addVisitor($sIpAddress,$dDateVisit);
}
访问者模型:
public function addVisitor($sIpAdress,$dDate){
$oVisitor = new Visitors();
$oVisitor->ipaddress = $sIpAdress;
$oVisitor->date = $dDate;
$oVisitor->save();
}
所以我只想插入一个ip地址。在这种情况下,当我点击新闻时,ip被插入数据库,因此对于访问者,点击1次=插入1次。在输入之前检查它是否已经存在:
public function addVisitor($ipaddresse, $date)
{
if ( ! $this->where(compact('ipaddresse'))->first())
{
static::create(compact('ipaddresse', 'date'));
}
}
使该ip字段在数据库中唯一ip addrese在现实世界中应该是唯一的,因此在dbI中使其唯一获取错误:SQLSTATE[23000]:完整性约束冲突:1062重复条目“10.0.2.2”对于密钥“ipaddresse”,您可能受益于使用重复密钥更新时插入,这将插入ip地址,但如果它已经存在,请更新它的特定字段record@DannyHearnah-OP没有说要更新任何东西。