Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在日期mysql和fat自由框架之前2天查找数据_Php_Mysql_Fat Free Framework - Fatal编程技术网

Php 在日期mysql和fat自由框架之前2天查找数据

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

您好,我正在尝试制作一个即将推出的服务模块,我需要在日期前2天或更长时间向用户展示服务,我正在使用php fat free和mysql,我有以下查询:

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');发布完整的代码行