whereBool()
The method whereBool()
is a type-safe variant of where()
used for filtering boolean-like fields such as TINYINT(1)
, BOOLEAN
, or similar.
It ensures the value is strictly interpreted as 0
or 1
and prevents logical injection or invalid values.
Method Signature
public function whereBool(string $column, bool|int $value, string $operator = '='): self
Basic Usage
Use this method to filter records based on boolean flags (e.g. is_active
, deleted
, published
).
The value will automatically be cast to 0
or 1
internally.
$db->whereBool('is_active', true);
$db->whereBool('deleted', 0);
$db->whereBool('published', 1, '!=');
$db->get('articles');
Allowed input and validation
The $value
must be a valid boolean or integer (i.e. 0
or 1
). Any other type or invalid number will be rejected.
Input | Cast | Accepted |
---|---|---|
true |
1 |
✅ |
false |
0 |
✅ |
1 |
1 |
✅ |
0 |
0 |
✅ |
'yes' |
– | ❌ rejected |
2 |
– | ❌ rejected |
Security Note
PDOdb performs type enforcement and security validation on all whereBool()
calls.
Unlike raw where()
, it blocks invalid values and prevents logical injection (e.g. 1 OR 1=1
).
Because all values are validated strictly and casted to 0
or 1
, common injection patterns will not pass through this method.
PDOdb_HEURISTIC_WHERE_CHECK
is enabled. You can globally disable this layer via:
define('PDOdb_HEURISTIC_WHERE_CHECK', false);
Related Methods
- where() – generic variant for all types
- whereString()
- whereInt()
- whereFloat()
- whereDate()