【问题标题】:Medoo MySQL not reading variableMedoo MySQL没有读取变量
【发布时间】:2016-03-29 05:24:37
【问题描述】:

我正在使用 Medoo MySQL 框架,但在 WHERE 语句中使用 IN 时遇到了这个问题:

$test = '1,2,3,4';

$count = $database->count("products", [
    "AND" => [
        "category_id" => $category['id'],
        "id" => [$test]
    ]
]);

计数结果应该是 4,但我得到 1。但是:

$count = $database->count("products", [
    "AND" => [
        "category_id" => $category['id'],
        "id" => [1,2,3,4]
    ]
]);

给我 4 的正确结果。有什么想法吗?提前致谢!

【问题讨论】:

  • 我的猜测是$test = '1,2,3,4'; in "id" => [$test] 正在评估具有 1 个字符串的数组,即。 ['1,2,3,4']id[0] = 1,2,3,4`,而不是具有 4 个值的数组。

标签: php mysql medoo


【解决方案1】:

试试这个...

$test = array(1,2,3,4);

$count = $database->count("products", [
    "AND" => [
        "category_id" => $category['id'],
        "id" => $test // variable without []
    ]
]);

【讨论】:

    【解决方案2】:

    $test = '1,2,3,4'; 是一个字符串。要将其转换为数组,您需要使用:

    $test = explode(',', '1,2,3,4');
    
    $count = $database->count("products", [
        "AND" => [
            "category_id" => $category['id'],
            "id" => $test
        ]
    ]);
    

    【讨论】:

      【解决方案3】:

      以下解决方案已在此处发布: https://github.com/catfan/Medoo/issues/637

      $values = '2,123,234,54';

      $database->select("account", "user_name", [
          "OR" => [
              "user_id" => explode(',',$values)
          ]
      ]);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-08-22
        • 2017-05-15
        • 1970-01-01
        • 2018-04-23
        • 2015-03-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多