【问题标题】:PhalconPHP - Scanning error before .. when parsing errorPhalconPHP - 解析错误时..之前的扫描错误
【发布时间】:2015-04-12 10:33:29
【问题描述】:

我正在使用 PhalconPHP 1.3.4 构建一个 Web 应用程序,我正在尝试同时从多个表中选择数据,因为某些值通过关系存储在另一个表中。

我的查询在 MySQL 工作台中运行良好,但是当我尝试使用 PhalconPHP 执行它时,我收到以下错误:

Scanning error before 'Bookings, Trips]...' when parsing: SELECT count(bkId) AS bookings FROM [Bookings, Trips] WHERE ((bkUserId = :userId:) AND (CURDATE() > tripFromDate)) AND (CURDATE() < DATE_ADD(tripFromDate, INTERVAL 2 WEEK)) (172)

我的 PHP 代码:

$query = new Builder();
$query->columns("count(bkId) AS bookings");
$query->from('Bookings, Trips');
$query->where("bkUserId = :userId:");
$query->andWhere("CURDATE() > tripFromDate");
$query->andWhere("CURDATE() < DATE_ADD(tripFromDate, INTERVAL 2 WEEK)");
$result = $query->getQuery()->execute(["userId" => $userId])->bookings;
return ($result > 0);

我了解到这可能是一个错误,但它应该已在 1.3.2 版本中修复,我目前做错了什么吗?

提前感谢您的帮助。

【问题讨论】:

    标签: php mysql phalcon


    【解决方案1】:

    我不认为 from 中的两列是正确的语法。在文档中有这个例子:

    $builder->from('Robots')
        ->addFrom('Parts', 'p');
    

    所以你的例子应该是这样的

     $query = new Builder();
        $query->columns("count(b.bkId) AS bookings");
        $query->from('Bookings', 'b');
        $query->addFrom('Trips');
        $query->where("b.bkUserId = :userId:");
        $query->andWhere("CURDATE() > b.tripFromDate");
        $query->andWhere("CURDATE() < DATE_ADD(b.tripFromDate, INTERVAL 2 WEEK)");
    

    要么这样,要么您最好转换为使用联接。

    【讨论】:

      猜你喜欢
      • 2017-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多