使用 ezSQL v4 PDO 对 WHERE 条件进行分组

Grouping WHERE conditions with ezSQL v4 PDO

如何在使用 selecting 函数时对 WHERE 条件进行分组?我知道如何用标准 SQL 编写它,但我无法使用 ezSQL.

来解决这个问题

我想要的

SELECT user_id, user_password, user_password_key
FROM users
WHERE (user_login = $userData OR user_email = $userData) AND user_status=1

我试过的

$db->selecting('users', 'user_id, user_password, user_password_key',
               where(eq('user_status', '1', _AND)),
               where(eq('user_login', $userData, _OR ), eq('user_email', $userData )));
$db->selecting('users', 'user_id, user_password, user_password_key',
               where(eq('user_status', '1')),
               where(eq('user_login', $userData, _OR ), eq('user_email', $userData )));
$db->selecting('users', 'user_id, user_password, user_password_key',
               $db->where(eq('user_login', $userData, _OR ), eq('user_email', $userData )),
               $db->where('user_status', '1'));
$db->selecting('users', 'user_id, user_password, user_password_key',
               eq('user_login', $userData, _OR ), eq('user_email', $userData ),
               $db->where('user_status', '1') );

如果我删除 user_status 的条件,它会起作用,但是当它在那里时它只是 returns NULL.

示例复制自 https://github.com/ezSQL/ezSQL#example-for-using-prepare-statements-indirectly-with-above-shortcut-sql-methods

现在可以使用以下代码在 v4 中使用

$db->selecting(
  'users',
  'user_id, user_password, user_password_key',
  where(
    eq('user_status', '1'),
    grouping(
      eq('user_login', $userData, _OR),
      eq('user_email', $userData)
    )
  )
);

有关 GitHub Wiki

的更多详细信息