thinkPHP获取字段名,还有更加简单的办法吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了thinkPHP获取字段名,还有更加简单的办法吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1779字,纯文字阅读大概需要3分钟。
内容图文
![thinkPHP获取字段名,还有更加简单的办法吗?](/upload/InfoBanner/zyjiaocheng/192/9315a97ded994264981f2252dd68cae5.jpg)
$use=D('classone');
$db=$use->select(5);
$arr = $db[0] ? $db[0] : '';
foreach($arr as $key => $value)
{
$arrKey[] = $key;
}
这个,我把 字段 的名字,获取成了一个数组 $arrKey ,但是我觉得这个办法比较笨,应该有直接就获取的办法,请问有没有???
回复内容:
thinkphp 3.2
$use=D('classone');
$db=$use->select(5);
$arr = $db[0] ? $db[0] : '';
foreach($arr as $key => $value)
{
$arrKey[] = $key;
}
这个,我把 字段 的名字,获取成了一个数组 $arrKey ,但是我觉得这个办法比较笨,应该有直接就获取的办法,请问有没有???
tp5么
/**
* 获取数据表信息
* @access public
* @param string $tableName 数据表名 留空自动获取
* @param string $fetch 获取信息类型 包括 fields type bind pk
* @return mixed
*/
public function getTableInfo($tableName = '', $fetch = '')
{
static $_info = [];
if (!$tableName) {
$tableName = $this->getTable();
}
if (is_array($tableName)) {
$tableName = key($tableName) ?: current($tableName);
}
if (strpos($tableName, ',')) {
// 多表不获取字段信息
return false;
}
$guid = md5($tableName);
if (!isset($_info[$guid])) {
$info = $this->connection->getFields($tableName);
$fields = array_keys($info);
$bind = $type = [];
foreach ($info as $key => $val) {
// 记录字段类型
$type[$key] = $val['type'];
if (preg_match('/(int|double|float|decimal|real|numeric|serial)/is', $val['type'])) {
$bind[$key] = PDO::PARAM_INT;
} elseif (preg_match('/bool/is', $val['type'])) {
$bind[$key] = PDO::PARAM_BOOL;
} else {
$bind[$key] = PDO::PARAM_STR;
}
if (!empty($val['primary'])) {
$pk[] = $key;
}
}
if (isset($pk)) {
// 设置主键
$pk = count($pk) > 1 ? $pk : $pk[0];
} else {
$pk = null;
}
$result = ['fields' => $fields, 'type' => $type, 'bind' => $bind, 'pk' => $pk];
$_info[$guid] = $result;
}
return $fetch ? $_info[$guid][$fetch] : $_info[$guid];
}
总结thinkphp快捷查询getBy、getField、getFieldBy用法及场景 http://baijunyao.com/article/59
内容总结
以上是互联网集市为您收集整理的thinkPHP获取字段名,还有更加简单的办法吗?全部内容,希望文章能够帮你解决thinkPHP获取字段名,还有更加简单的办法吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。