MySql查询以基于时间戳获取结果



在这里,我试图根据两个时间戳之间的差异获得一些细节,即。,有一个修改的列存储时间戳,还有一个从另一个表创建的列也存储时间戳。我需要的是时间戳(修改(和时间戳(当前时间(之间的时间戳(创建(。Plzz帮助

错误编号:1054

"where子句"中的未知列"Array">

从创建BETWEEN时间戳(Array(AND时间戳(CURRENT_timestamp(((的活动中选择*

文件名:models/Notification_model.php

线路编号:11

<?php
class Notification_model extends CI_Model 
{
public function notifications()
{
$q1="select modified from influencer where influencerid=".$this->session->userdata('id')."";
$query1 = $this->db->query($q1);
$this->session->set_userdata('modified_time',$query1->result());
$q="select * from campaigns where created BETWEEN timestamp(".$this->session->userdata('modified_time').") AND timestamp(CURRENT_TIMESTAMP())";
$query = $this->db->query($q);
if($query->num_rows()>0){
return $query->result();
}
}
}
?>

您的$query1->result()返回一个数组,您应该取第一行和第一列(updated(:

$modified_time = $query1->result()[0][0];

此外,这样做是一个非常糟糕的想法,也是一个重大的安全问题:

$q1="select modified from influencer where influencerid=".$this->session->userdata('id')."";

SQL注入可以对您进行黑客攻击。例如,如果我将ID定义为:1; UPDATE users SET is_admin = 1,SQL请求变为:select modified from influencer where influencerid=1; UPDATE users SET is_admin = 1,我是你的系统管理员。

你应该准备好你的声明来防止这种黑客攻击:

$query = $this->db->prepare("select modified from influencer where influencerid = :id");
$query->bindParam(':id', $this->session->userdata('id'));
$query->execute();

更多信息请点击此处:https://www.php.net/manual/en/pdo.prepared-statements.php

相关内容

  • 没有找到相关文章

最新更新