whereNotIn() and orWhereNotIn()
The whereNotIn() method lets you exclude rows where a column’s value is found in a given list.
All values are securely bound using prepared statements, with additional input validation and error handling.
Signature:
public function whereNotIn(string $column, array $values): selfpublic function orWhereNotIn(string $column, array $values): self
Basic Usage
Exclude users with certain roles:
$db->whereNotIn('role', ['banned', 'inactive']);
$users = $db->get('users');
Empty Arrays Throw Exception
An empty array is considered invalid and will trigger an InvalidArgumentException.
$values = [];
$db->whereNotIn('status', $values); // ❌ Exception will be thrown
orWhereNotIn()
Same behavior as whereNotIn() but adds an OR clause instead:
$db->where('deleted_at', null);
$db->orWhereNotIn('role', ['superadmin']);
Allowed Input
[1, 2, 3]→ ✅ valid['foo', 'bar']→ ✅ valid[1, 'x']→ ⚠️ allowed but discouraged[]→ ❌ rejected (throws exception)null, scalar or string → ❌ invalid, must be non-empty array
Security
Every value in the array is bound individually using parameterized queries to prevent injection. Mixed types are technically accepted but should be avoided for clarity and predictability.