本文目录一览:
- 1、php thinkphp3.2.3怎么读取数据库某一字段
- 2、thinkphp field是什么意思
- 3、thinkPHP3.2.3利用Ajax前台实现验证码验证,但通过form表单的按钮提交后,验证码一直错误!如何解决?
- 4、thinkphp3.2.3提示非法操作怎么解决
- 5、thinkphp3.2.3 关于两表关联的问题。
php thinkphp3.2.3怎么读取数据库某一字段
$user=M('User');
$field='name';
$where='id=1';
$data=$user-field($field)-where($where)-find();
print_r($data);
thinkphp field是什么意思
做数据库查询的时候,比较经常用到这两个,总是查手册,记不住,现在把它总结下,希望以后用的时候不查手册了。
不管是用select 查询数据集,还是用find 查询数据,常配合连贯操作where、field、order等一起使用。
field():用于定义要查询的字段(支持字段排除)
用法:field($field , $except=false)
参数:$field —— 字段名,要查询的字段名;
$except —— 是否排除,默认为false,省略不写;如果为true,表示定义的字段为数据表中排除$field参数定义之外的所有字段
返回值:当前的模型实例
注:不调用field方法,默认返回所有字段,和field( '*' )等效。
需要显式的传入所有的字段,可以使用下面的方法:
$model - field(true) -select() ;
但是建议只获取需要显式的字段名,或者采用字段排除方式来定义,例如:
$model -field( 'status' , true) -select(); //获取除了status之外的所有字段
$model -field( 'id','nickname')-select(); //获取id和nickname字段
getField():用于查询某个字段的值
用法:getField($field, $sepa=null)
参数:$field —— 要获取的字段字符串(多个用逗号分隔)
$sepa —— 字段数据间隔符号,如果是 NULL返回数组为数组。默认为null
返回值:如果查询结果为空返回null,如果field是一个字段则返回该字段的值,如果field是多个字段,返回数组。数组的索引是第一个字段的值,sepa为null则返回二维数组。
示例:当只有一个字段的时候,默认返回一个值。
$User = M("User"); // 实例化User对象
// 获取ID为3的用户的昵称
$nickname = $User-where('id=3')-getField('nickname');
示例:如果需要返回数组:
thinkPHP3.2.3利用Ajax前台实现验证码验证,但通过form表单的按钮提交后,验证码一直错误!如何解决?
验证码一直错误那就是:后台生成的和前台显示的不是同一个验证码,你可以把后台生成的打印出来测试一下。
1:验证码生成代码:
//输入验证码
function verifyimg(){
//验证码做配置
$config = array(
'seKey' = 'ThinkPHP.CN', // 验证码加密密钥
'codeSet' = '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY', // 验证码字符集合-thinkphp3.2.3field
'expire' = 1800, // 验证码过期时间(s)
'useZh' = false,
'useImgBg' = false, // 使用背景图片
'fontSize' = 14, // 验证码字体大小(px)
'useCurve' = true, // 是否画混淆曲线
'useNoise' = true, // 是否添加杂点
'imageH' = 45, // 验证码图片高度
'imageW' = 100, // 验证码图片宽度
'length' = 4, // 验证码位数
'fontttf' = '4.ttf', // 验证码字体,不设置随机获取
'bg' = array(243, 251, 254), // 背景颜色
'reset' = true, // 验证成功后是否重置
);
$verify=new Verify($config); //实例化Verify类。 空间类元素引入。使用次数多的情况下。
//verify= new \Think\Verify 完全限定名称方式。 使用次数少的情况下。
$verify-entry(); //数据验证码。
}
2.下面的是一段验证码显示代码:
ul
li class="user_main_text"验证码: /li
li class="user_main_input"
input class="TxtValidateCodeCssClass" id="captcha" name="captcha" type="text"-thinkphp3.2.3field
验证码输出
img src="{$smarty.const.__CONTROLLER__}/verifyimg" onclick="this.src='{$smarty.const.__CONTROLLER__}/verifyimg/'+Math.random()" alt="" /-thinkphp3.2.3field
/li
/ul
希望对你有帮助。
thinkphp3.2.3提示非法操作怎么解决
需要开启debug调试模式,在入口文件开启调试模式,在入口文件index.php 中写入一下代码define(‘APP_DEBUG’,true),然后删除runtime缓存目录,就可以看到具体的错误信息了-thinkphp3.2.3field
你可以去后盾人平台看看,里面的东西不错
thinkphp3.2.3 关于两表关联的问题。
public function lists(){
$list1 = M('a')-select();//a表所有项目id
foreach ($list1 as $k1=$v1){
//通过a表id关联b表uid,查询b表name及每个项目人数
$list2 = M('b')-where(array('uid'=$v1['id']))-select();
$list1[$k1]['people_num'] = count($list2);//每个项目人数
foreach ($list2 as $k2=$v2){
$list1[$k1]['xiangmu_name'][$k2]['name'] = $v2['name'];//项目名称
}
}
dump($list1);//三维数组,每个项目包含多个人员,html需要volist嵌套循环
$this-assign('list',$list1);
$this-display();
}
//以下是打印的结果:
array(2) {
[0] = array(4) {
["id"] = string(1) "1"
["xiangmu"] = string(7) "项目1"
["people_num"] = int(2)
["xiangmu_name"] = array(2) {
[0] = array(1) {
["name"] = string(6) "张三"
}
[1] = array(1) {
["name"] = string(6) "张四"
}
}
}
[1] = array(4) {
["id"] = string(1) "2"
["xiangmu"] = string(7) "项目2"
["people_num"] = int(2)
["xiangmu_name"] = array(2) {
[0] = array(1) {
["name"] = string(6) "李四"
}
[1] = array(1) {
["name"] = string(6) "李五"
}
}
}
}
//html代码:嵌套循环
volist name="list" id="vo"
项目编号:{$vo.id}br
项目名称:{$vo.xiangmu}br
项目人数:{$vo.people_num}br
volist name="list['xiangmu_name']" id="xm_name"
人员姓名:{$xm_name.name}br
/volist
/volist