Php 在日期mysql和fat自由框架之前2天查找数据
您好,我正在尝试制作一个即将推出的服务模块,我需要在日期前2天或更长时间向用户展示服务,我正在使用php fat free和mysql,我有以下查询:Php 在日期mysql和fat自由框架之前2天查找数据,php,mysql,fat-free-framework,Php,Mysql,Fat Free Framework,您好,我正在尝试制作一个即将推出的服务模块,我需要在日期前2天或更长时间向用户展示服务,我正在使用php fat free和mysql,我有以下查询: SELECT * FROM bitacora WHERE fechaprox >= NOW() - INTERVAL 2 DAY; 这在mysql上有效 我试着把它放进无脂食品中,就像这样: public function avisos($f3) { $this->M_Bitacora->cliente = 'SE
SELECT * FROM bitacora WHERE fechaprox >= NOW() - INTERVAL 2 DAY;
这在mysql上有效
我试着把它放进无脂食品中,就像这样:
public function avisos($f3)
{
$this->M_Bitacora->cliente = 'SELECT nombre FROM cliente WHERE id_cliente= bitacora.id_cliente';
$result= $this->M_Bitacora->find('SELECT * FROM bitacora WHERE fechaprox >= NOW() - INTERVAL 2 DAY');
$items= array();
foreach($result as $bitacora){
$items[] = $bitacora->cast();
}
echo json_encode([
'mensaje' => count($items) > 0 ? '' : 'Aun no hay registros',
'info'=> [
'items' => $items,
'total' => count($items)
]
]);
}
但这是我的错误:内部服务器错误
PDOStatement:您的SQL语法有错误;检查手册
对应于MySQL服务器版本的正确语法
在“从bitacora中选择*”附近使用,其中fechaprox>=NOW()-
1号线间隔2天
你能帮我吗?或者有没有其他方法来获取我需要的数据呢?所以我要站出来说,
m\u Bitacora
是一个DB\SQL\Mapper
对象,对吗
如果您使用的是mapper对象,那么您要做的就是使用mapper对象隐藏所有讨厌的SQL并将其隐藏到其他地方。它有一系列的助手方法来find()
,load()
,和select()
,以及其他方法来帮助您快速获取所需的数据并将其映射到PHP对象
因为您使用的是原始SQL路由,所以您需要的是使用db连接。如果您仍然想使用SQL,那么最好获取您为运行SQL而创建的SQL连接变量。然后像@Caius Jard建议的那样,使用exec()
所以我要站出来说m_Bitacora
是一个DB\SQL\Mapper
对象,对吗
如果您使用的是mapper对象,那么您要做的就是使用mapper对象隐藏所有讨厌的SQL并将其隐藏到其他地方。它有一系列的助手方法来find()
,load()
,和select()
,以及其他方法来帮助您快速获取所需的数据并将其映射到PHP对象
因为您使用的是原始SQL路由,所以您需要的是使用db连接。如果您仍然想使用SQL,那么最好获取您为运行SQL而创建的SQL连接变量。然后像@Caius Jard建议的那样,使用exec()
请再次检查,find
将filter
作为参数,而不是整个SELECT
语句
public function avisos($f3)
{
$result= $this->M_Bitacora->find(['fechaprox >= NOW() - INTERVAL 2 DAY']);
$items = array_map(function($e) { return $e->cast(); }, $result);
echo json_encode([
'mensaje' => count($items) > 0 ? '' : 'Aun no hay registros',
'info'=> [
'items' => $items,
'total' => count($items)
]
]);
}
请再次检查,find
将filter
作为参数,而不是整个SELECT
语句
public function avisos($f3)
{
$result= $this->M_Bitacora->find(['fechaprox >= NOW() - INTERVAL 2 DAY']);
$items = array_map(function($e) { return $e->cast(); }, $result);
echo json_encode([
'mensaje' => count($items) > 0 ? '' : 'Aun no hay registros',
'info'=> [
'items' => $items,
'total' => count($items)
]
]);
}
我认为在FFF中应该使用exec
来运行原始查询,find
用于指定条件,例如person->find(array('name=?',John'))
我使用了exec,但它不起作用:(你读了吗?是的,我读了,但现在我尝试使用exec,就像这个exec('SELECT*FROM bitacora WHERE fechaprox>=now()-间隔2天);发布完整的代码我认为在FFF中你应该使用exec
来运行原始查询,find
用于指定条件,例如person->find(array('name=?',John'))
我使用了exec,但它不起作用:(你读了吗?是的,但现在我正试图像这个exec一样使用exec('SELECT*FROM bitacora,其中fechaprox>=NOW()-INTERVAL 2 DAY');发布完整的代码行