【问题标题】:how to put more than 2 conditions in Query binding parameters如何在查询绑定参数中放置两个以上的条件
【发布时间】:2016-06-13 14:39:23
【问题描述】:

您好,我正在处理参数绑定查询 Phalcon。以下是我的代码

$conditions = "client = :client: AND inv_date = :inv_date: AND date_sent = :date_sent: AND date_received = :date_received:";
        $parameters = array(
            "client" => $search_client,
            "inv_date" => $invoice_date,
            "date_sent" => $date_sent,
            "date_received" => $date_received
        );
$invoices = Invoices::find(
    array(
        $conditions,
        "bind" => $parameters
    )
);

我是否正确使用了 AND? 仅供参考,它不起作用,如果我尝试以下方法,它会起作用:

$conditions = "client = :client: AND inv_date = :inv_date:";
$parameters = array(
    "client" => $search_client,
);
$invoices = Invoices::find(
    array(
        $conditions,
        "bind" => $parameters
    )
);

所有字段都存在于表中,我认为还有其他方法可以使用多个AND

【问题讨论】:

  • 这是正确的方法。您的两个示例都使用相同的技术,所以我的猜测是没有与您的第一个查询条件匹配的记录。还有其他使用多个条件的方法,它是 Phalcon Query Builder。查询构建器示例:$robots = Robots::query() ->where("type = :type:") ->andWhere("year < 2000") ->bind(array("type" => "mechanical")) ->order("name") ->execute();
  • @NikiMihaylov,谢谢伙计
  • 您可以通过标记答案来解决问题,以便其他人使用。
  • 查询正确。您的查询参数之一是empty。我猜它返回的是空对象。

标签: php mysql sql parameters phalcon


【解决方案1】:
$conditions = "client = :client: AND inv_date = :inv_date:";
$parameters = array(
    "client" => $search_client,
);
$invoices = Invoices::find(
    array(
        $conditions,
        "bind" => $parameters
    )
);

此代码不起作用,因为您只传递了一个参数 client,但必须传递 2 个参数:client 和 inv_date。

$parameters = array(
    "client" => $search_client,
    "inv_date" => $invoice_date,
);

因此 - 您可以使用此选项(因为它确实有效),或者您可以像 @Niki Mihaylov 建议的那样使用 andWhere

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-22
    • 2019-08-08
    • 2021-10-14
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多