// 中文 替换为 拼音 $pinyin = new PinYinHelper(); $cName = preg_replace_callback('/[\x{4e00}-\x{9fff}]+/u', function ($matches) use($pinyin) { return $pinyin->getPinYin($matches[0]); }, $cName);
- 查询
- 搜索
- 模糊搜索
- 排序
- 分页与计数
- 查询条件组
- 插入数据
- 更新数据
- 删除数据
- 链式方法
- 格式化查询结果
经常用Codeigniter的朋友都知道,Codeigniter的insert_batch是一个很好用的批量插入的解决方案,大数据的时候能显著提升性能。
但是也不是任何时候都好用,今天插入数据的时候一直报错,查看了半天终于发现了问题所在:
用 insert_batch() 插入的数据每一项都必须拥有相同的键值
在论坛看到很多新手站长在咨询怎么样才可以设置和Discuz! 官方论坛首页一个分区下面横排3个板块或者更多呢?如下图:
下面我一起来操作下:
论坛 后台 论坛 板块管理 分区 编辑
图一:
图二:
说明:图二中 第一个红框 是填写论坛首页板块横排个数 比如:http://www.discuz.net/forum.php
第二个红框 是填写论坛分区首页板块横排个数 比如:http://www.discuz.net/forum.php?gid=1
大部分PHP框架中,为了防止一个类被重复实例化,往往采用“单例模式”实例化类。我们的项目框架是这样做的:
先写好一个基类 /framework/Base.class.php,内容如下:
<?php namespace framework; defined('SITE_PATH') or die('Access Denied'); /** * 业务基类 * * @package framework */ class Base { /** * 类实例化(单例模式) * * @return mixed * @throws Exception */ public static function instance() { static $_instance = array(); $classFullName = get_called_class(); if (!isset($_instance[$classFullName])) { core_load_class($classFullName); if (!class_exists($classFullName, false)) { throw new Exception('"' . $classFullName . '" was not found !'); } $_instance[$classFullName] = new $classFullName(); } return $_instance[$classFullName]; } } ?>
如题:ThinkPHP v3.2.3 数据库读写分离,开启事务时报错:
ERR: There is no active transaction
遇到的问题:
我们还是先来看手册是怎么说的:
It is important to remember that any string participating in an Excel formula is allowed to be maximum 255 characters (not bytes).
当下拉列表的数据来源过长(more than 255 characters)时,该下拉列表会显示不正确(我遇到的情况是:该下拉列表显示了别的正常的下拉列表的数据来源)。
getField() 使用技巧
getField() 方法是 ThinkPHP 中用来获取字段值的方法,区别于 select() 和 find() 方法,通常仅用于获取个别字段的值。但是事实上并没有那么简单,该方法的用法总结如下:
获取某个字段值
这个是 getField() 方法最基本的用法,用于获取符合条件的某个字段值。
// 实例化User对象 $User = M("User"); // 获取ID为3的用户的昵称 $nickname = $User->where('id=3')->getField('nickname');
返回的 nickname 是一个字符串结果。也就是说,即使有满足条件的多个字段,也只会返回一个结果。