thinkPHP 查询数据库字段
/** * 查询指定的字段是否存在表中 * @param type $field 字段名称 * @return void * @access protected */ protected function issetField($field){ $fields=$this->model->getDbFields(); return array_search($field,$fields); }从3.1版本开始,模型的字段缓存文件名全部转换成小写,避免重复生成。 可以通过设置DB_FIELDS_CACHE 参数来关闭字段自动缓存,如果在开发的时候经常变动数据库的结构,而不希望进行数据表的字段缓存,可以在项目配置文件中增加如下配置:
- "DB_FIELDS_CACHE"=>false
如果需要显式获取当前数据表的字段信息,可以使用模型类的getDbFields方法来获取当前数据对象的全部字段信息,例如:
- $fields = $User->getDbFields();
如果不希望依赖字段缓存或者想提高性能,也可以在模型类里面手动定义数据表字段的名称,可以避免IO加载的效率开销,在模型类里面添加fields属性即可,定义格式如下:
- <?php
- class UserModel extends Model{
- protected $fields = array(
- "id", "username", "email", "age", "_pk" => "id", "_autoinc" => true
- );
- }
详细说明
array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false。
在 PHP 4.2.0 之前,函数在失败时返回 null 而不是 false。
如果第三个参数 strict 被指定为 true,则只有在数据类型和值都一致时才返回相应元素的键名。
语法
array_search(value,array,strict)
参数 | 描述 |
---|---|
value | 必需。规定需要搜素的键值。 |
array | 必需。规定被搜索的数组。 |
strict |
可选。如果该参数被设置为 TRUE,则函数在数组中搜索数据类型和值都一致的元素。可能的值:
如果设置为 true,则在数组中检查给定值的类型,数字 5 和字符串 5 是不同的(参见实例 2)。 |
技术细节
返回值: |
如果在数组中找到指定的键值,则返回对应的键名,否则返回 FALSE。 如果在数组中找到键值超过一次,则返回第一次找到的键值所匹配的键名。 |
PHP 版本: | 4.0.5+ |
更新日志: |
如果向函数传递无效的参数,函数返回 NULL(这个适用于自 PHP 5.3.0 起的所有的 PHP 函数)。 自 PHP 4.2.0 起,如果搜索失败,该函数返回 FALSE,而不是 NULL。 |
更多实例
在数组中搜索键值 5,并返回它的键名(注意 ""):
<?php
$a=array("a"=>"5","b"=>5,"c"=>"5");
echo array_search(5,$a,true)
;
?>
输出: b
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。