php之mongodb插入数据后如何返回当前插入记录ID

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php  
/**
*插入记录
*参数:
*$table_name:表名
*$record:记录
*
*返回值:
*成功:true
*失败:false
*/
function insert($table_name,$record){
$dbname = $this->curr_db_name;
try{
$this->mongo->$dbname->$table_name->insert($record,array('safe'=>true));//执行安全写入的方法
return true;
}catch(MongoCursorException $e){
$this->error = $e->getMessage();
return false;
}
}

?>

如上所示,参数$record实际上是个指针引用,当插入成功后$record数组中就会自动返回_id

Read More

使用PHP导入和导出CSV文件

项目开发中,很多时候要将外部CSV文件导入到数据库中或者将数据导出为CSV文件,那么具体该如何实现呢?本文将使用PHP并结合mysql,实现了CSV格式数据的导入和导出功能。
下载源码

我们先准备mysql数据表,假设项目中有一张记录学生信息的表student,并有id,name,sex,age分别记录学生的姓名、性别、年龄等信息。

1
2
3
4
5
6
7
CREATE TABLE `student` ( 
`id` int(11) NOT NULL auto_increment,
`name` varchar(50) NOT NULL,
`sex` varchar(10) NOT NULL,
`age` smallint(3) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Read More

mongodb insert()、save()的区别

mongodb 的 insert()、save(),区别主要是:若存在主键,insert()不做操作,而save()则更改原来的内容为新内容。

存在数据:{_id:1,"name":"n1"}

insert({_id:1,"name":"n2"})会提示错误

save({_id : 1,"name":"n2"})会把 n1 改为 n2 。

PHP流程控制之goto语句

goto 操作符可以用来跳转到程序中的另一位置。该目标位置可以用目标名称加上冒号来标记,而跳转指令是 goto 之后接上目标位置的标记。PHP 中的 goto 有一定限制,目标位置只能位于同一个文件和作用域,也就是说无法跳出一个函数或类方法,也无法跳入到另一个函数。也无法跳入到任何循环或者 switch 结构中。可以跳出循环或者 switch,通常的用法是用 goto 代替多层的 break。

Read More

PHP中break及continue两个流程控制指令解析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
$arr = array(
'a' => '0a0',
'b' => '0b0',
'c' => '0c0',
'd' => '0d0',
'e' => '0e0',
);
//********break********//
//用来跳出目前执行的循环,并不再继续执行循环了。
foreach($arr as $k => $v){
if($k == 'c'){
break;
}
$arr2[$k] = $v;
}
var_dump($arr2);
/*
array (size=2)
'a' => string '0a0' (length=3)
'b' => string '0b0' (length=3)
*/

//********continue********//
//立即停止目前执行循环,并回到循环的条件判断处,继续下一个循环。
foreach($arr as $k => $v){
if($k == 'c'){ //忽略对这一项的处理
continue;
}
$arr3[$k] = $v;
}
var_dump($arr3);
/*
array (size=4)
'a' => string '0a0' (length=3)
'b' => string '0b0' (length=3)
'd' => string '0d0' (length=3)
'e' => string '0e0' (length=3)
*/

?>