首页 > 解决方案 > Medoo 中有 IN() 函数吗?

问题描述

可以说我有这段代码:

$this->database->debug()->select(
            'client',
            [
                'id',
                'name',
                'phone',
                'email',
                'address'
            ],
            Medoo::raw(
                'WHERE `id` IN(:clientIds)',
                [
                    ':clientIds' => $clientIDs
                ]
            )
        );

它给了我这个错误:

Notice: Undefined index: array in vendor\catfan\medoo\src\Medoo.php on line 519
Call Stack
#   Time    Memory  Function    Location
1   0.4014  404880  {main}( )   ...\test.php:0
2   0.4269  1080712 Writers\InvoicesWriter->Write( )    ...\test.php:9
3   0.4430  1136296 Writers\InvoicesWriter->getClientInfo( )    ...\InvoicesWriter.php:18
4   0.4430  1136752 Medoo\Medoo->select( )  ...\InvoicesWriter.php:83
5   0.4431  1136816 Medoo\Medoo->selectContext( )   ...\Medoo.php:1365
6   0.4433  1137496 Medoo\Medoo->whereClause( ) ...\Medoo.php:1075
7   0.4433  1137496 Medoo\Medoo->buildRaw( )    ...\Medoo.php:983
8   0.4434  1137496 Medoo\Medoo->typeMap( ) ...\Medoo.php:471

所以,我猜它不支持它呢?如果不是,您认为我应该如何安全地使用 IN() ?

标签: phpmedoo

解决方案


是的。*这是它的完成方式*

$database->select("table_name", "column_name", 
    [
        "Value" => [option1, option2, option3, e.t.c]
  ]
);
  • 例子
$database->select("users", "user_id", 
    [
      "age" => [12, 15, 18, 14]
    ]
);

上面的例子解释为>>"SELECT `user_id` FROM `users` WHERE `age` IN(12, 15, 18, 14)"

您可以在此处找到更多示例


推荐阅读