【发布时间】:2016-04-06 00:41:42
【问题描述】:
这个想法是查询用户最新个人资料更改的最新时间戳。如果他们尝试更新的时间少于十天,他们将被拒绝。无论我似乎做什么,我都无法正确获得 10 天差异逻辑。 $stamp 是数据库中的 Y-m-d 日期格式。
<?php
ini_set('display_errors',1);
$json=$_POST['user'];
$json=str_replace('\\','',$json);
$user=json_decode($json);
$pdo=new PDO('mysql://hostname=localhost;dbname=database', 'user', 'password');
$update = $pdo->prepare("update `accounts` set stamp=CURDATE(),`title`='{$user->title}' ,`radio_hanlde`='{$user->radio_handle}' , `carrier`='{$user->carrier}' ,`hometown`='{$user->hometown}' WHERE user_id='{$user->user_id}' AND DATE_DIFF(CURRDATE(),stamp) > 10");
$update->execute();
if ($update->rowCount() != 0 ){
echo json_encode(array('success'=>'1','message'=>'Your profile has been updated successfully!'));}
else {echo json_encode(array('success'=>'0','message'=>'It has been less than ten days since your latest profile change. You will have to wait!'));}
?>
【问题讨论】:
-
这应该是个问题。打印出两个日期以查看值是否正确..date_create($stamp[1]);特别是这个值
-
$stamp[0] 返回 "Array" , $stamp[1] 返回 " "。我不明白。当我查看 sql 工作台时,它包含“2016-23-01”并且字段是非空日期。
-
我在这里可能做错了什么?
-
这是我的查询 $query=$pdo->query("Select stamp FROM channel1_db.accounts where user_id='{$user->user_id}'"); $stam=$query->fetchAll(PDO::FETCH_ASSOC);
-
你做错了@Robert ...遍历戳记并取一个变量..在foreach循环中分配值..并使用该变量进行比较