codeigniter框架中DB类的用法收集,有需要的朋友可以看看。
链接数据库
-------
$this->load->database();//手动连接数据库
//连接多数据库
$DB1 = $this->load->database('group_one', TRUE);
$DB2 = $this->load->database('group_two', TRUE);
查询
-------
//参数绑定形式
$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";
$this->db->query($sql, array(3, 'live', 'Rick'));
//多结果标准查询
$query = $this->db->query($sql); //自定义
$query = $this->db->get('tablename'); //便捷形式,相当于:SELECT * FROM tablename
$query = $this->db->get('tablename', 10, 20); // 相当于: SELECT * FROM tablename LIMIT 20, 10
$query->result() //对象形式
$query->result_array() //数组形式
$query->num_rows() //总条数
$query->num_fields() //字段数
//单结果标准查询
$row = $query->row(); //对象形式
$row = $query->row_array(); //数组形式
插入
-------
$data = array(
'title' => $title,
'name' => $name
);
$this->db->insert('tablename', $data); //便捷插入
$this->db->insert_string('tablename', $data); //便捷插入
$this->db->insert_id() //刚插入的id
$this->db->affected_rows() //影响的行数(update,insert)
更新
-------
$data = array(
'name' => $name,
'email' => $email
);
$where = "id = 1";
$this->db->update('tablename', $data);
$this->db->update_string('tablename', $data, $where);
删除
-------
$array = array(
'name' => $name,
'title' => $title
);
$this->db->delete('tablename', $array);
// Produces:
// "DELETE FROM tablename WHERE name = '$name' AND title = '$title'"
$this->db->truncate('tablename'); //清空表
// Produce: TRUNCATE tablename
(where)
-------
$array = array(
'name' => $name,
'title' => $title
);
$this->db->where($array);
// Produces: "WHERE name = '$name' AND title = '$title'"
-----------------------------------------------------
$this->db->count_all('tablename'); //表中记录总行数
-----------------------------------------------------
$query->free_result() //释放资源
系统时区设置
更改 PHP 语言中的时区设置有两种方法:
(1) 修改 php.ini 文件中的设置,找到[date] 下的“;date.timezon=” 选项,将其修改为“date.timezone=Asia/Hong_Kong”,然后重新启动 Apache服务器
(2) 在应用程序中,在使用时间日期函数之前添加如下函数:
date_default_timezone_set(timezone);参数 timezone 为 PHP 可识别的时区名称,如果时区名称 PHP 无法识别,则系统采用 UTC 时区。例如:date_default_timezone_set("Asia/Hong_Kong");设置完成后,date()函数便可以正常使用,不会再出现时差问题。
输出格式化的日期和时间
在 PHP 中通过 date()函数获取当前的日期和时间。date()函数的语法如下:date(string format,int timestamp).date()函数将返回的参数 timestamp 按照指定格式而产生的字符串。其中的参数 timestamp 是可选的,如果省略,则使用当前时间。format 参数可以使开发人员按其指定的格式输出日期和时间。
参数 format 的格式化选项
a 小写的上午和下午值,返回值 am 或 pm
A 大写的上午和下午值,返回值 AM 或 PM
B Swatch Internet 标准时间,返回值 000-999
d 月份中的第几天,有前导零的两位数字,返回值 01-31
D 星期中的第几天,文本格式,3个字母,返回值 Mon-Sun
F 月份,完整的文本格式,返回值 January-December
h 小时,12 小时格式,没有前导零,返回值 1-12
H 小时,24 小时格式,没有前导零,返回值 0-24
i 有前导零的分钟数,返回值 00-59
I 判断是否为夏令时,返回值如果是夏令时为 1,否则为 0
j 月份中的第几天,没有前导零,返回值 1-31
l(L的小字) 星期数,完整的文本格式,返回值 Sunday-Saturday
L 判断是否为闰年,返回值如果是闰年为 1,否则为 0
m 数字表示的月份,有前导零,返回值 01-012
M 3个字母缩写表示的月份,返回值 Jan-Dec
n 数字表示的月份,没有前导零,返回值 1-12
O 与格林威治时间相差的小时数,如+0200
r RFC 822格式的日期,如 Thu,21 Dec 2000 16:01:07+0200
s 秒数,有前导零,返回值 00-59
S 每月天数后面的英文后缀,两个字符,如 st、nd、rd或者 th。可以和 j 一起使用
t 指定月份所应有的天数,28-31
T 本机所在的时区
U 从 UNIX 纪元(January 1 1970 00:00:00 GMT)开始至今的妙数
w 星期中的第几天,数字表示,返回值为 0-6
W ISO-8601 格式年份中的第几周,每周从星期一开始
y 两位数字表示的年份,返回值如 88 或 08
Y 4 位数字完整的表示年份,返回值如 1998、2008
z 年份中的第几天,返回值 0-366
Z 时差偏移量的秒数。UTC 西边的时区偏移量总是负的。UTC 东边的时区偏移量总是正的,返回值-43200-43200
date()函数可以对 format 选项随意地组合。详细的日期及时间:date("Y-m-d H:i:s");
计算两个日期的差值
date_default_timezone_set("Asia/Hong_Kong");
$time1 = strtotime(date("Y-m-d H:i:s")); //当前的系统时间
$time2 = strtotime("2013-2-10 17:10:00"); //放假的时间
$time3 = strtotime("2013-1-1"); //2013年元旦
$sub1 = ceil(($time2 - $time1)/3600); //(60 秒*60分)秒/小时
$sub2 = ceil(($time3 - $time1)/86400); //(60秒*60分*24小时)秒/天
echo "离放假还有<font color=red>$sub1</font>小时!!!";
echo "<p>";
echo "离 2013 年元旦还有<font color=red>$sub2</font>天!!!";
?>
说明:ceil()函数的格式为 float ceil(float value),该函数为取整函数,返回不小于参数 value 值的最小整数。如果有小数部分,则进一位。应注意该函数的返回类型为 float 型,而不是整型。
function getWeekDate($year,$weeknum){
$firstdayofyear=mktime(0,0,0,1,1,$year);
$firstweekday=date('N',$firstdayofyear);
$firstweenum=date('W',$firstdayofyear);
if($firstweenum==1){
$day=(1-($firstweekday-1))+7*($weeknum-1);
$startdate=date('Y-m-d',mktime(0,0,0,1,$day,$year));
$enddate=date('Y-m-d',mktime(0,0,0,1,$day+6,$year));
}else{
$day=(9-$firstweekday)+7*($weeknum-1);
$startdate=date('Y-m-d',mktime(0,0,0,1,$day,$year));
$enddate=date('Y-m-d',mktime(0,0,0,1,$day+6,$year));
}
return array($startdate,$enddate);
}
?>