Есть ли функция IN () в Medoo? - PullRequest
1 голос
/ 03 мая 2020

Допустим, у меня есть этот кусок кода:

$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 ()?

1 Ответ

1 голос
/ 03 мая 2020

Похоже, там есть :

$database->select("account", "user_name", [
    "OR" => [
        "user_id" => [2, 123, 234, 54],
        "email" => ["foo@bar.com", "cat@dog.com", "admin@medoo.in"]
    ]
]);
// WHERE
// user_id IN (2,123,234,54) OR
// email IN ('foo@bar.com','cat@dog.com','admin@medoo.in')

Но я не думаю, что вы можете использовать его с необработанным объектом.

...