作为php程序员,使用thinkphp框架的where 需要写一个条件为bank_is_visible不等于-1或者等于null,如何写
时间: 2023-12-10 21:40:11 浏览: 121
可以使用thinkphp框架的查询构建器中的where方法结合原生SQL语句来实现此条件:
```php
$where = 'bank_is_visible != -1 OR bank_is_visible IS NULL';
$data = Db::table('bank')
->where($where)
->select();
```
其中,`$where` 变量为原生SQL语句,`$data` 变量为查询结果。在此示例中,我们使用了 `!=` 操作符表示不等于,同时使用了 `OR` 逻辑运算符将两个条件组合在一起。注意,如果使用双引号包裹SQL语句,需要对其中的特殊字符进行转义,如下所示:
```php
$where = "bank_is_visible != -1 OR bank_is_visible IS NULL";
$data = Db::table('bank')
->where($where)
->select();
```
但是,为了避免SQL注入攻击,建议使用框架提供的参数绑定机制,将变量值与SQL语句分离,如下所示:
```php
$where = 'bank_is_visible != :visible OR bank_is_visible IS NULL';
$data = Db::table('bank')
->where($where, ['visible' => -1])
->select();
```
在此示例中,我们使用 `:visible` 占位符代替具体的变量值 `-1`,并在 `where` 方法第二个参数中传递变量值数组。这样做可以有效地防止SQL注入攻击。
阅读全文