由于zend for eclipse6.1.0 没有php_memcache.dll这个动态链接库,我们在phpunit测试的时候会报找不到php_memcache类的错,于是只需要把php_memcache.dll(对应版本的:php_memcache.dll)放入:D:\Program Files\Zend\Zend Studio for Eclipse - 6.1.0\plugins\org.zend.php.debug.debugger.win32.x86_5.2.14.v20080602\resources\php5\ext\php-cgi.exe,然后修改D:\Program Files\Zend\Zend Studio for Eclipse - 6.1.0\plugins\org.zend.php.debug.debugger.win32.x86_5.2.14.v20080602\resources\php5\php.ini 加入一行:extension=php_memcache.dll ,重新启动zend for eclipse6.1.0即可!
http://blog.s135.com/apmserv/bin/5.2.6/sina/
D:\Program Files\Zend\Zend Studio for Eclipse - 6.0.1\plugins\org.zend.php.debug.debugger.win32.x86_5.2.14.v20080602\resources\php5\ext
D:\Program Files\Zend\Zend Studio for Eclipse - 6.0.1\plugins\org.zend.php.debug.debugger.win32.x86_5.2.14.v20080602\resources\php5\ext
首先要澄清一个流毒广泛的说法:大学毕业第一份工作不重要。
这绝对是极其错误的。它给了大学毕业生一个错误的认识,对相当一部分人造成了无可挽回的损失!大学生就业选择,是对一个人十年内的生活产生重大影响的关键决策,是极其重要的。
那么找怎么样的工作比较好?什么样的行业算好?大公司好还是小公司好?如何正确的理解当前工资和未来发展?一系列的问题摆在大学生的面前。下面我首先对要考虑的宏观策略问题进行分析,然后再进行个别具体问题的解答。
一、中国现阶段职场利益集团划分
这才是一个大学毕业生首先要知道的大问题。学校的主任不会和你说的,公司招聘时也不会和你说的,因为利益只有少部分人能够分到;你父母也不一定会和你说的,因为他们很可能也是糊涂的。如果这一部分已经有人很明确的告诉你了,或者你个人已经很敏锐的感知到了,那么恭喜你!你已经可以关闭这篇文章了,因为你已经是明白人,不需要我浪费口舌。
(一)5大利益象限
中国的社会处在重要的转型变化中:由计划经济转向“有中国特色的市场经济”。这个过程是一个利益格局的重新分配的过程。在就业市场上,我们可以按大的方面对各种利益单位归类如下:
1.公务员(含事业单位)
2.垄断行业国企
3.竞争行业国企
4.外企
5.民营企业
阅读全文
这绝对是极其错误的。它给了大学毕业生一个错误的认识,对相当一部分人造成了无可挽回的损失!大学生就业选择,是对一个人十年内的生活产生重大影响的关键决策,是极其重要的。
那么找怎么样的工作比较好?什么样的行业算好?大公司好还是小公司好?如何正确的理解当前工资和未来发展?一系列的问题摆在大学生的面前。下面我首先对要考虑的宏观策略问题进行分析,然后再进行个别具体问题的解答。
一、中国现阶段职场利益集团划分
这才是一个大学毕业生首先要知道的大问题。学校的主任不会和你说的,公司招聘时也不会和你说的,因为利益只有少部分人能够分到;你父母也不一定会和你说的,因为他们很可能也是糊涂的。如果这一部分已经有人很明确的告诉你了,或者你个人已经很敏锐的感知到了,那么恭喜你!你已经可以关闭这篇文章了,因为你已经是明白人,不需要我浪费口舌。
(一)5大利益象限
中国的社会处在重要的转型变化中:由计划经济转向“有中国特色的市场经济”。这个过程是一个利益格局的重新分配的过程。在就业市场上,我们可以按大的方面对各种利益单位归类如下:
1.公务员(含事业单位)
2.垄断行业国企
3.竞争行业国企
4.外企
5.民营企业

加密日志
女人是做电子罗盘的。每天研究陀螺仪,水平仪,角度传感器,加速度传感器喝倾角传感器。这天突接到通知,需要再加两个小时的班。女人给男人打电话,告诉他可能得晚一点儿回家。男人说,嗯,我也刚下班,在路上,你大约什么时间回来?女人刚想告诉他还得两个小时,手机就没电了。女人想找个公用电话,再想想还是算了。老夫老妻了,儿子都读了中学,还用如此浪漫?
终于下了班,女人匆匆往家赶。已经很晚了,她想这时男人一定候在客厅,把空调开得很暖。餐桌上应该还摆了温热的饭菜,肯定有女人喜欢的那道。想到这里,女人笑了,加快了脚下的步子。却突然,在离家二十多米远的地方,她看到了男人。
男人站在黑暗里,只是一个模糊的灰色轮廓。但她知道那是男人。女人对男人太熟悉了,熟悉到可以辨认出他的一根发丝,一个喷嚏,一缕气味,甚至一个影子。女人轻声说,嗨。男人就走过来,他说怎么现在才回来?好像男人正发着抖。天很冷,夜风把人的衣服,一点一点地刮透。
女人说你在这里干什么?男人说有条沟……记得早晨还没有沟呢……可能在抢修煤气管道……他们也不亮个警示灯……你得从这边绕过来。男人领着女人,小心翼翼地绕过那条沟。女人说你等在这里,就为了告诉我有一条沟?男人说是。这么冷的天,万一摔一跤,可不是好玩的。男人低头上了楼梯,声控灯忽明忽暗。突然,女人觉得男人像一个热恋中的男孩,寒风中,正忐忑不安地等着他的心上人。
进了屋子,男人急急地去开空调,急急地从冰箱里拿出冻鱼冻肉。女人愣一下,她说你一直没有回家?男人说是啊。女人说下了班,你就一直等在那里?男人说是啊,本想打电话告诉你小心点,可是你手机没电了。女人说你在那里等了两个多小时?怎么不先回家取取暖?男人说万一我回来的时候,你也刚好回家呢?沟那么深,又没亮个警示灯……晚饭想吃红烧肉吗?女人说从那里回趟家添一件衣服,不过两三分钟,你怕我在这两三分钟内回来,就一直不敢离开?男人说是啊是啊……吃不吃红烧肉?
女人有些感动。好像男人并不像热恋中的小男孩。他是一个深沉细心的父亲。男人的鼻子红红的,突然打一个响亮的喷嚏。女人走过去,从男人的手上抢过围裙。突然她发现男人咧了嘴巴,眉头轻轻地皱。女人忙撸开他的裤腿,她发现男人的膝盖鲜血淋漓。女人说你快去歇着,找个创可贴贴上。男人笑笑说不用了,两个多小时,早已经长痂了……我说你到底吃不吃红烧肉?
爱情是什么呢?应该不是那种年年月月天天时时分分秒秒的相守吧?其实真正动人的爱情,只是在某一个时刻,只是在某一个最微小的时刻,一秒钟,都不敢离开。
终于下了班,女人匆匆往家赶。已经很晚了,她想这时男人一定候在客厅,把空调开得很暖。餐桌上应该还摆了温热的饭菜,肯定有女人喜欢的那道。想到这里,女人笑了,加快了脚下的步子。却突然,在离家二十多米远的地方,她看到了男人。
男人站在黑暗里,只是一个模糊的灰色轮廓。但她知道那是男人。女人对男人太熟悉了,熟悉到可以辨认出他的一根发丝,一个喷嚏,一缕气味,甚至一个影子。女人轻声说,嗨。男人就走过来,他说怎么现在才回来?好像男人正发着抖。天很冷,夜风把人的衣服,一点一点地刮透。
女人说你在这里干什么?男人说有条沟……记得早晨还没有沟呢……可能在抢修煤气管道……他们也不亮个警示灯……你得从这边绕过来。男人领着女人,小心翼翼地绕过那条沟。女人说你等在这里,就为了告诉我有一条沟?男人说是。这么冷的天,万一摔一跤,可不是好玩的。男人低头上了楼梯,声控灯忽明忽暗。突然,女人觉得男人像一个热恋中的男孩,寒风中,正忐忑不安地等着他的心上人。
进了屋子,男人急急地去开空调,急急地从冰箱里拿出冻鱼冻肉。女人愣一下,她说你一直没有回家?男人说是啊。女人说下了班,你就一直等在那里?男人说是啊,本想打电话告诉你小心点,可是你手机没电了。女人说你在那里等了两个多小时?怎么不先回家取取暖?男人说万一我回来的时候,你也刚好回家呢?沟那么深,又没亮个警示灯……晚饭想吃红烧肉吗?女人说从那里回趟家添一件衣服,不过两三分钟,你怕我在这两三分钟内回来,就一直不敢离开?男人说是啊是啊……吃不吃红烧肉?
女人有些感动。好像男人并不像热恋中的小男孩。他是一个深沉细心的父亲。男人的鼻子红红的,突然打一个响亮的喷嚏。女人走过去,从男人的手上抢过围裙。突然她发现男人咧了嘴巴,眉头轻轻地皱。女人忙撸开他的裤腿,她发现男人的膝盖鲜血淋漓。女人说你快去歇着,找个创可贴贴上。男人笑笑说不用了,两个多小时,早已经长痂了……我说你到底吃不吃红烧肉?
爱情是什么呢?应该不是那种年年月月天天时时分分秒秒的相守吧?其实真正动人的爱情,只是在某一个时刻,只是在某一个最微小的时刻,一秒钟,都不敢离开。
<?php
/**
* 倒库程序雏形,将space的数据分析后导入到现有数据库中
*
*/
class import_export
{
private $dsn="";
private $user="";
private $password="";
private $pdo="";
public function import_export($dsn,$user,$password)
{
$this->dsn = $dsn;
$this->user = $user;
$this->password = $password;
$this->pdo = new PDO($this->dsn, $this->user, $this->password);
}
public function fetch_result($query)
{
$rs = $this->pdo->query($query);
$result_arr = $rs->fetchAll();
return $result_arr;
}
public function insert($insert_sql)
{
$count = $this->pdo->exec($insert_sql);
if($count)
{
return true;
}else{
return false;
}
}
public function get_pdo_obj()
{
return $this->db;
}
public function lastInsertId()
{
return $this->pdo->lastInsertId();
}
}
?>
<?php
$time_begin = time();
$conf_array = array("db_host"=>"localhost","port"=>"3306","dbname"=>"public","user"=>"root","password"=>"");
$dsn = "mysql:host={$conf_array['db_host']};port={$conf_array['port']};dbname={$conf_array['dbname']}";
$user = $conf_array['user'];
$password = $conf_array['password'];
$pdo = new import_export($dsn,$user,$password);
for($i=1;$i<100000000000;$i++)
{
$time_end = time();
if($time_end - $time_begin >= 60)
{
exit;
}
$insert_sql = "INSERT INTO `information` ( `infoid` , `group` , `productid` , `connection` , `invitetype` , `content` , `addition` ) VALUES (NULL , '1', '2', '2', '1', '的的的的的的的的的的的的的的的的的的', '的的的的的的的的的的的的的的的的的的的的的的的的');"; //插入数据库的sql语句
$import_export2 = $pdo->insert($insert_sql);
$insert_id = $pdo->lastInsertId();
$insert_sql2 = "INSERT INTO `relation` ( `id` , `owneruid` , `otheruid` , `type` , `status` , `infoid` , `ctime` , `uniq_key` ) VALUES (NULL , '1', '2', '1', '11', $insert_id, '2008-10-02 20:30:21', '45646546456456456456456456456456465');"; //插入数据库的sql语句
$import_export2 = $pdo->insert($insert_sql2);
}
?>

查询当前数据库有哪些存储过程:
创建一个简单的存储过程
5 存储过程创建完毕,看怎么调用它
显示结果
删除存储过程:
存储过程实例:
PHP调用存储过程:
返回单个数据:
1.1:创建MySQL存储过程:
1.2:PHP调用:
返回多个数据:
2.1:创建MySQL存储过程:
2.2:PHP调用:
P.S.:以上代码执行通过环境 PHP 5.X.X + MySQL 5.X.X
下面就可以正常使用了,以下是例子程序:
mysql>show procedure status where Db='test'
创建一个简单的存储过程
mysql>create procedure hi() select 'hello';
5 存储过程创建完毕,看怎么调用它
mysql>call hi();
显示结果
mysql> call hi();
+-------+
| hello |
+-------+
| hello |
+-------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.01 sec)
+-------+
| hello |
+-------+
| hello |
+-------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.01 sec)
删除存储过程:
DROP PROCEDURE hi;
存储过程实例:
DELIMITER ||
CREATE PROCEDURE showdb( v_offset int, v_pagesize int )
BEGIN
SET @stmt = concat("SELECT * FROM `comment` ORDER BY id DESC LIMIT ",v_offset,",",v_pagesize);
PREPARE s1 FROM @stmt;
EXECUTE s1;
DEALLOCATE PREPARE s1;
END||
DELIMITER ;
CREATE PROCEDURE showdb( v_offset int, v_pagesize int )
BEGIN
SET @stmt = concat("SELECT * FROM `comment` ORDER BY id DESC LIMIT ",v_offset,",",v_pagesize);
PREPARE s1 FROM @stmt;
EXECUTE s1;
DEALLOCATE PREPARE s1;
END||
DELIMITER ;
PHP调用存储过程:
返回单个数据:
1.1:创建MySQL存储过程:
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`proc_test` $$
CREATE PROCEDURE `test`.`proc_test` (out a int)
BEGIN
select count(*) into a from tblname;
END $$
DELIMITER ;
DROP PROCEDURE IF EXISTS `test`.`proc_test` $$
CREATE PROCEDURE `test`.`proc_test` (out a int)
BEGIN
select count(*) into a from tblname;
END $$
DELIMITER ;
1.2:PHP调用:
$db->query("CALL test.proc_test(@a)");
$res = $db->query("select @a");
$row = $res->fetch_array();
echo $row['@a'];
$res = $db->query("select @a");
$row = $res->fetch_array();
echo $row['@a'];
返回多个数据:
2.1:创建MySQL存储过程:
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`proc_test` $$
CREATE PROCEDURE `test`.`proc_test` ()
BEGIN
select * from tbl_name;
END $$
DELIMITER ;
DROP PROCEDURE IF EXISTS `test`.`proc_test` $$
CREATE PROCEDURE `test`.`proc_test` ()
BEGIN
select * from tbl_name;
END $$
DELIMITER ;
2.2:PHP调用:
$res=$db->query("CALL test.proc_test()");
while ($arr=$res->fetch_array())
{
echo $arr["Field"] ."<br/>";
}
while ($arr=$res->fetch_array())
{
echo $arr["Field"] ."<br/>";
}
P.S.:以上代码执行通过环境 PHP 5.X.X + MySQL 5.X.X
1 define('CLIENT_MULTI_RESULTS', 131072);
2
3 $link = mysql_connect("127.0.0.1", "root", "",1,CLIENT_MULTI_RESULTS) or die("Could not connect: ".mysql_error());
2
3 $link = mysql_connect("127.0.0.1", "root", "",1,CLIENT_MULTI_RESULTS) or die("Could not connect: ".mysql_error());
下面就可以正常使用了,以下是例子程序:
1 <?php
2 define('CLIENT_MULTI_RESULTS', 131072);
3
4 $link = mysql_connect("127.0.0.1", "root", "",1,CLIENT_MULTI_RESULTS) or die("Could not connect: ".mysql_error());
5 mysql_select_db("vs") or die("Could not select database");
6 ?>
7
8 <?php
9 $result = mysql_query("call get_news_from_class_id(2)") or die("Query failed:" .mysql_error());
10 while($row = mysql_fetch_array($result, MYSQL_ASSOC))
11 {
12 $line = '<tr><td><a target = _blank href=\''.$row["url"].'\'>'.$row["title"].'('.$row["page_time"].')'.'</a></td></tr>';
14 echo $line;
15 printf("\n");
16
17 }
18 mysql_free_result($result);
19 ?>
20
21 <?php
22 mysql_close($link);
23 ?>
2 define('CLIENT_MULTI_RESULTS', 131072);
3
4 $link = mysql_connect("127.0.0.1", "root", "",1,CLIENT_MULTI_RESULTS) or die("Could not connect: ".mysql_error());
5 mysql_select_db("vs") or die("Could not select database");
6 ?>
7
8 <?php
9 $result = mysql_query("call get_news_from_class_id(2)") or die("Query failed:" .mysql_error());
10 while($row = mysql_fetch_array($result, MYSQL_ASSOC))
11 {
12 $line = '<tr><td><a target = _blank href=\''.$row["url"].'\'>'.$row["title"].'('.$row["page_time"].')'.'</a></td></tr>';
14 echo $line;
15 printf("\n");
16
17 }
18 mysql_free_result($result);
19 ?>
20
21 <?php
22 mysql_close($link);
23 ?>
最近在做一个小东西的时候,发现mysql有last_insert_id()这个函数
它的用法如下:记录下来备忘
它必需紧跟在insert 语句执行之后。
//执行insert语句先
$sql="insert into table (name1,name2,...) values('value1','values'...)";
dbx_query($db_link,$sql);
//找出最后一次插入记录的id
$select="select last_insert_id() ";
$result=dbx_query($db_link,$select);
$last_id=$result->data[0][0];
ps: $last_id=mysql_insert_id();
mysql_insert_id() 将 MySQL 内部的 C API 函数 mysql_insert_id() 的返回值转换成 long(PHP 中命名为 int)。如果 AUTO_INCREMENT 的列的类型是 BIGINT,则 mysql_insert_id() 返回的值将不正确。可以在 SQL 查询中用 MySQL 内部的 SQL 函数 LAST_INSERT_ID() 来替代。
具体的请看php手册: mysql_insert_id
来自:http://blog.csdn.net/kemy88/article/details/1108524
_____________________________________________________________________________
show table status\G
show create table message;
LAST_INSERT_ID
自动返回最后一个 INSERT 或 UPDATE 操作为 AUTO_INCREMENT 列设置的第一个发生的值. 参考这里
The ID that was generated is maintained in the server on a per-connection basis.
LAST_INSERT_ID是基于单个connection的, 不可能被其它的客户端连接改变。
可以用 SELECT LAST_INSERT_ID(); 查询LAST_INSERT_ID的值.
Important: If you insert multiple rows using a single INSERT statement, LAST_INSERT_ID() returns the value generated for the first inserted row only.
使用单INSERT语句插入多条记录, LAST_INSERT_ID只返回插入的第一条记录产生的值. 比如
ID 2 是在插入第一条记录aaaa 时产生的.
LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID会改变。
一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的。
但在多线程情况下,就不行了。在多用户交替插入数据的情况下max(id)显然不能用。
这就该使用LAST_INSERT_ID了,因为LAST_INSERT_ID是基于Connection的,只要每个线程都使用独立的Connection对象,LAST_INSERT_ID函数将返回该Connection对AUTO_INCREMENT列最新的insert or update操作生成的第一个record的ID。这个值不能被其它客户端(Connection)影响,保证了你能够找回自己的 ID 而不用担心其它客户端的活动,而且不需要加锁。
mysql的last_insert_id()不可靠 Mysql的API有个很有意义的函数last_insert_id()。这个函数的作用是,针对auto_increment字段,返回给定的 数据库链接,上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号。如果没有指定数据库链接,则使用上一个打开的连接。 很多人质疑last_insert_id()是否是可靠的,以前我也犹豫过。 事实上的结果是mysql_insert_id决不会取错。首先做个测试,在mysql_query("insert.....);之后立刻sleep(1100),其间再做些其他的insert. 然后发现在mysql_insert_id取的值都不会和其他的冲突。 看了半天mysql的代码。mysql_insert_id是这么定义的
my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql) { return mysql->;last_used_con->;insert_id; }
参考:http://zhaohe162.blog.163.com/blog/static/38216797201122411193745/
它的用法如下:记录下来备忘
它必需紧跟在insert 语句执行之后。
//执行insert语句先
$sql="insert into table (name1,name2,...) values('value1','values'...)";
dbx_query($db_link,$sql);
//找出最后一次插入记录的id
$select="select last_insert_id() ";
$result=dbx_query($db_link,$select);
$last_id=$result->data[0][0];
ps: $last_id=mysql_insert_id();
mysql_insert_id() 将 MySQL 内部的 C API 函数 mysql_insert_id() 的返回值转换成 long(PHP 中命名为 int)。如果 AUTO_INCREMENT 的列的类型是 BIGINT,则 mysql_insert_id() 返回的值将不正确。可以在 SQL 查询中用 MySQL 内部的 SQL 函数 LAST_INSERT_ID() 来替代。
具体的请看php手册: mysql_insert_id
来自:http://blog.csdn.net/kemy88/article/details/1108524
_____________________________________________________________________________
show table status\G
show create table message;
LAST_INSERT_ID
自动返回最后一个 INSERT 或 UPDATE 操作为 AUTO_INCREMENT 列设置的第一个发生的值. 参考这里
The ID that was generated is maintained in the server on a per-connection basis.
LAST_INSERT_ID是基于单个connection的, 不可能被其它的客户端连接改变。
可以用 SELECT LAST_INSERT_ID(); 查询LAST_INSERT_ID的值.
Important: If you insert multiple rows using a single INSERT statement, LAST_INSERT_ID() returns the value generated for the first inserted row only.
使用单INSERT语句插入多条记录, LAST_INSERT_ID只返回插入的第一条记录产生的值. 比如
1. mysql> INSERT INTO t VALUES (NULL, 'aaaa'), (NULL, 'bbbb'), (NULL, 'cccc');
2. mysql> SELECT * FROM t;
3. +----+------+
4. | id | name |
5. +----+------+
6. | 1 | Bob |
7. | 2 | aaaa |
8. | 3 | bbbb |
9. | 4 | cccc |
10. +----+------+
11. mysql> SELECT LAST_INSERT_ID();
12. +------------------+
13. | LAST_INSERT_ID() |
14. +------------------+
15. | 2 |
16. +------------------+
2. mysql> SELECT * FROM t;
3. +----+------+
4. | id | name |
5. +----+------+
6. | 1 | Bob |
7. | 2 | aaaa |
8. | 3 | bbbb |
9. | 4 | cccc |
10. +----+------+
11. mysql> SELECT LAST_INSERT_ID();
12. +------------------+
13. | LAST_INSERT_ID() |
14. +------------------+
15. | 2 |
16. +------------------+
ID 2 是在插入第一条记录aaaa 时产生的.
LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID会改变。
一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的。
但在多线程情况下,就不行了。在多用户交替插入数据的情况下max(id)显然不能用。
这就该使用LAST_INSERT_ID了,因为LAST_INSERT_ID是基于Connection的,只要每个线程都使用独立的Connection对象,LAST_INSERT_ID函数将返回该Connection对AUTO_INCREMENT列最新的insert or update操作生成的第一个record的ID。这个值不能被其它客户端(Connection)影响,保证了你能够找回自己的 ID 而不用担心其它客户端的活动,而且不需要加锁。
mysql的last_insert_id()不可靠 Mysql的API有个很有意义的函数last_insert_id()。这个函数的作用是,针对auto_increment字段,返回给定的 数据库链接,上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号。如果没有指定数据库链接,则使用上一个打开的连接。 很多人质疑last_insert_id()是否是可靠的,以前我也犹豫过。 事实上的结果是mysql_insert_id决不会取错。首先做个测试,在mysql_query("insert.....);之后立刻sleep(1100),其间再做些其他的insert. 然后发现在mysql_insert_id取的值都不会和其他的冲突。 看了半天mysql的代码。mysql_insert_id是这么定义的
my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql) { return mysql->;last_used_con->;insert_id; }
参考:http://zhaohe162.blog.163.com/blog/static/38216797201122411193745/
语法如下:
alter table table_name add index index_name (column_list) ;
alter table table_name add unique (column_list) ;
alter table table_name add primary key (column_list) ;
alter table table_name drop index index_name ;
alter table table_name drop primary key ;
drop index shili on tpsc ;
来源URL:http://www.isstudy.com/mysql/440.html
实际实践如下:
alter table `relation` drop index gots; alter table `relation` drop index gots;
alter table `relation` add index gots(`group`,`owneruid`, `type`,`status`);
create table index_analyse_xiangdong select * from relation limit 21000;
测试用数据表结构如下:
--
1.PRIMARY KEY(主键索引)
mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
2.UNIQUE(唯一索引)
mysql>ALTER TABLE `table_name` ADD UNIQUE (
`column` ) //这个不靠谱
3.INDEX(普通索引)
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
4.FULLTEXT(全文索引)
mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column` )
5.多列索引
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
可以用sql强制使用或不使用索引
IGNORE INDEX (invitetype)
USE INDEX (invitetype)
如
select count from p2p_info1 IGNORE INDEX (invitetype) where invitetype="111";
alter table table_name add index index_name (column_list) ;
alter table table_name add unique (column_list) ;
alter table table_name add primary key (column_list) ;
alter table table_name drop index index_name ;
alter table table_name drop primary key ;
drop index shili on tpsc ;
来源URL:http://www.isstudy.com/mysql/440.html
实际实践如下:
alter table `relation` drop index gots; alter table `relation` drop index gots;
alter table `relation` add index gots(`group`,`owneruid`, `type`,`status`);
create table index_analyse_xiangdong select * from relation limit 21000;
show index from p2p_main; //p2p_main 是表名称
mysql> show index from p2p_main;
+----------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+----------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| p2p_main | 0 | PRIMARY | 1 | id | A | 3052412 | NULL | NULL | | BTREE | |
| p2p_main | 1 | oweneruid | 1 | oweneruid | A | 610482 | NULL | NULL | | BTREE | |
| p2p_main | 1 | oweneruid_2 | 1 | oweneruid | A | 610482 | NULL | NULL | | BTREE | |
| p2p_main | 1 | oweneruid_2 | 2 | otheruid | A | 1017470 | NULL | NULL | | BTREE | |
+----------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
mysql> show index from p2p_main;
+----------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+----------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| p2p_main | 0 | PRIMARY | 1 | id | A | 3052412 | NULL | NULL | | BTREE | |
| p2p_main | 1 | oweneruid | 1 | oweneruid | A | 610482 | NULL | NULL | | BTREE | |
| p2p_main | 1 | oweneruid_2 | 1 | oweneruid | A | 610482 | NULL | NULL | | BTREE | |
| p2p_main | 1 | oweneruid_2 | 2 | otheruid | A | 1017470 | NULL | NULL | | BTREE | |
+----------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
alter table `p2p_main` add index oweneruid_2(oweneruid ,otheruid );//建立索引,括号里面不能有逗号和单引号
alter table `p2p_main` drop index oweneruid_2; //删除索引:是建立在oweneruid 和otheruid 的联合索引
alter table `p2p_main` drop index oweneruid_2; //删除索引:是建立在oweneruid 和otheruid 的联合索引
explain SELECT SQL_NO_CACHE * FROM `mytest` force index(rstatus,uid) WHERE rstatus =1 AND uid IN ( 3,2,7) \G;
测试用数据表结构如下:
--
-- 表的结构 `p2p_info`
--
CREATE TABLE IF NOT EXISTS `p2p_info` (
`infoid` int(10) unsigned NOT NULL auto_increment,
`group` enum('1','2') collate utf8_bin NOT NULL,
`productid` char(32) collate utf8_bin NOT NULL,
`connection` enum('11','22') collate utf8_bin NOT NULL,
`invitetype` enum('111','222') collate utf8_bin NOT NULL,
`content` text collate utf8_bin NOT NULL,
`addition` text collate utf8_bin NOT NULL,
PRIMARY KEY (`infoid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- 表的结构 `p2p_main`
--
CREATE TABLE IF NOT EXISTS `p2p_main` (
`id` int(10) unsigned NOT NULL auto_increment,
`oweneruid` int(11) NOT NULL,
`otheruid` int(11) NOT NULL,
`type` enum('1','2') NOT NULL default '1',
`status` enum('11','22') NOT NULL default '11',
`infoid` int(11) NOT NULL,
`ctime` datetime NOT NULL,
`uniq_key` varchar(64) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
--
CREATE TABLE IF NOT EXISTS `p2p_info` (
`infoid` int(10) unsigned NOT NULL auto_increment,
`group` enum('1','2') collate utf8_bin NOT NULL,
`productid` char(32) collate utf8_bin NOT NULL,
`connection` enum('11','22') collate utf8_bin NOT NULL,
`invitetype` enum('111','222') collate utf8_bin NOT NULL,
`content` text collate utf8_bin NOT NULL,
`addition` text collate utf8_bin NOT NULL,
PRIMARY KEY (`infoid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- 表的结构 `p2p_main`
--
CREATE TABLE IF NOT EXISTS `p2p_main` (
`id` int(10) unsigned NOT NULL auto_increment,
`oweneruid` int(11) NOT NULL,
`otheruid` int(11) NOT NULL,
`type` enum('1','2') NOT NULL default '1',
`status` enum('11','22') NOT NULL default '11',
`infoid` int(11) NOT NULL,
`ctime` datetime NOT NULL,
`uniq_key` varchar(64) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
1.PRIMARY KEY(主键索引)
mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
2.UNIQUE(唯一索引)
mysql>ALTER TABLE `table_name` ADD UNIQUE (
`column` ) //这个不靠谱
alter table `index_analyse_xiangdong` ADD UNIQUE key id4(id);
alter table index_analyse_xiangdong drop index id4;
alter table index_analyse_xiangdong drop index id4;
3.INDEX(普通索引)
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
4.FULLTEXT(全文索引)
mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column` )
5.多列索引
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
可以用sql强制使用或不使用索引
IGNORE INDEX (invitetype)
USE INDEX (invitetype)
如
select count from p2p_info1 IGNORE INDEX (invitetype) where invitetype="111";
建表:
查看引擎状态:
查看表类型(存储引擎): SHOW TABLE STATUS FROM test;
SHOW variables like "have_%"
用innodb引擎。使用方法是create table xxx()engine=innodb;如果想所有建立的表格都用innodb引擎,可以把“default-storage- engine=INNODB”加到/etc/mysql/my.cnf(位置可能不同)。设完之后就可以用“show engines;”检查是否设置好。不过据说该设置在5.0.22下可能无效。
http://www.geekso.com/post/124/
事务处理:
ySQL 总是启动自动提交你运行的每个 SQL 语句的自动提交(autocommit)模式创建每的新连接。为了使用事务,可以使用 SQL 命令 SET AUTOCOMMIT = 0 关闭自动提交(autocommit)开关,使用 COMMIT 和 ROLLBACK 来提交事务和回滚事务。如果你想保留 autocommit 开关打开,你可以将事务放入 BEGIN 和 COMMIT 或 ROLLBACK之间。
heikki@hundin:~/mysql/client> mysql test
CREATE TABLE customer (id INT NOT NULL, PRIMARY KEY (id)) ENGINE=INNODB;
ALTER TABLE et ENGINE = INNODB;.查看引擎状态:
show engines;
查看表类型(存储引擎): SHOW TABLE STATUS FROM test;
SHOW variables like "have_%"
用innodb引擎。使用方法是create table xxx()engine=innodb;如果想所有建立的表格都用innodb引擎,可以把“default-storage- engine=INNODB”加到/etc/mysql/my.cnf(位置可能不同)。设完之后就可以用“show engines;”检查是否设置好。不过据说该设置在5.0.22下可能无效。
http://www.geekso.com/post/124/
事务处理:
ySQL 总是启动自动提交你运行的每个 SQL 语句的自动提交(autocommit)模式创建每的新连接。为了使用事务,可以使用 SQL 命令 SET AUTOCOMMIT = 0 关闭自动提交(autocommit)开关,使用 COMMIT 和 ROLLBACK 来提交事务和回滚事务。如果你想保留 autocommit 开关打开,你可以将事务放入 BEGIN 和 COMMIT 或 ROLLBACK之间。
heikki@hundin:~/mysql/client> mysql test
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 5 to server version: 3.23.50-log
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql> CREATE TABLE CUSTOMER (A INT, B CHAR (20), INDEX (A)) TYPE = InnoDB;
Query OK, 0 rows affected (0.00 sec)
mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO CUSTOMER VALUES (10, 'Heikki');
Query OK, 1 row affected (0.00 sec)
mysql> COMMIT;
Query OK, 0 rows affected (0.00 sec)
mysql> SET AUTOCOMMIT=0;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO CUSTOMER VALUES (15, 'John');
Query OK, 1 row affected (0.00 sec)
mysql> ROLLBACK;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT * FROM CUSTOMER;
+------+--------+
| A | B |
+------+--------+
| 10 | Heikki |
+------+--------+
1 row in set (0.00 sec)
Your MySQL connection id is 5 to server version: 3.23.50-log
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql> CREATE TABLE CUSTOMER (A INT, B CHAR (20), INDEX (A)) TYPE = InnoDB;
Query OK, 0 rows affected (0.00 sec)
mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO CUSTOMER VALUES (10, 'Heikki');
Query OK, 1 row affected (0.00 sec)
mysql> COMMIT;
Query OK, 0 rows affected (0.00 sec)
mysql> SET AUTOCOMMIT=0;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO CUSTOMER VALUES (15, 'John');
Query OK, 1 row affected (0.00 sec)
mysql> ROLLBACK;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT * FROM CUSTOMER;
+------+--------+
| A | B |
+------+--------+
| 10 | Heikki |
+------+--------+
1 row in set (0.00 sec)
net use \\ip\ipc$ " " /user:" " 建立IPC空链接
net use \\ip\ipc$ "密码" /user:"用户名" 建立IPC非空链接
net use h: \\ip\c$ "密码" /user:"用户名" 直接登陆后映射对方C:到本地为H:
net use h: \\ip\c$ 登陆后映射对方C:到本地为H:
net use \\ip\ipc$ /del 删除IPC链接
net use h: /del 删除映射对方到本地的为H:的映射
net user 用户名 密码 /add 建立用户
net user guest /active:yes 激活guest用户
net user 查看有哪些用户
net user 帐户名 查看帐户的属性
net localgroup ***istrators 用户名 /add 把“用户”添加到管理员中使其具有管理员权限,注意:***istrator后加s用复数
net start 查看开启了哪些服务
net start 服务名 开启服务;(如:net start telnet, net start schedule)
net stop 服务名 停止某服务
net time \\目标ip 查看对方时间
net time \\目标ip /set 设置本地计算机时间与“目标IP”主机的时间同步,加上参数/yes可取消确认信息
net view 查看本地局域网内开启了哪些共享
net view \\ip 查看对方局域网内开启了哪些共享
net config 显示系统网络设置
net logoff 断开连接的共享
net pause 服务名 暂停某服务
net send ip "文本信息" 向对方发信息
net ver 局域网内正在使用的网络连接类型和信息
net share 查看本地开启的共享
net share ipc$ 开启ipc$共享
net share ipc$ /del 删除ipc$共享
net share c$ /del 删除C:共享
net user guest 12345 用guest用户登陆后用将密码改为12345
net password 密码 更改系统登陆密码
netstat -a 查看开启了哪些端口,常用netstat -an
netstat -n 查看端口的网络连接情况,常用netstat -an
netstat -v 查看正在进行的工作
netstat -p 协议名 例:netstat -p tcq/ip 查看某协议使用情况(查看tcp/ip协议使用情况)
netstat -s 查看正在使用的所有协议使用情况
nbtstat -A ip 对方136到139其中一个端口开了的话,就可查看对方最近登陆的用户名(03前的为用户名)-注意:参数-A要大写
TELNET就很简单了
开始 运行 TELNET 然后
再HELP回车 就看到了
net use \\ip\ipc$ "密码" /user:"用户名" 建立IPC非空链接
net use h: \\ip\c$ "密码" /user:"用户名" 直接登陆后映射对方C:到本地为H:
net use h: \\ip\c$ 登陆后映射对方C:到本地为H:
net use \\ip\ipc$ /del 删除IPC链接
net use h: /del 删除映射对方到本地的为H:的映射
net user 用户名 密码 /add 建立用户
net user guest /active:yes 激活guest用户
net user 查看有哪些用户
net user 帐户名 查看帐户的属性
net localgroup ***istrators 用户名 /add 把“用户”添加到管理员中使其具有管理员权限,注意:***istrator后加s用复数
net start 查看开启了哪些服务
net start 服务名 开启服务;(如:net start telnet, net start schedule)
net stop 服务名 停止某服务
net time \\目标ip 查看对方时间
net time \\目标ip /set 设置本地计算机时间与“目标IP”主机的时间同步,加上参数/yes可取消确认信息
net view 查看本地局域网内开启了哪些共享
net view \\ip 查看对方局域网内开启了哪些共享
net config 显示系统网络设置
net logoff 断开连接的共享
net pause 服务名 暂停某服务
net send ip "文本信息" 向对方发信息
net ver 局域网内正在使用的网络连接类型和信息
net share 查看本地开启的共享
net share ipc$ 开启ipc$共享
net share ipc$ /del 删除ipc$共享
net share c$ /del 删除C:共享
net user guest 12345 用guest用户登陆后用将密码改为12345
net password 密码 更改系统登陆密码
netstat -a 查看开启了哪些端口,常用netstat -an
netstat -n 查看端口的网络连接情况,常用netstat -an
netstat -v 查看正在进行的工作
netstat -p 协议名 例:netstat -p tcq/ip 查看某协议使用情况(查看tcp/ip协议使用情况)
netstat -s 查看正在使用的所有协议使用情况
nbtstat -A ip 对方136到139其中一个端口开了的话,就可查看对方最近登陆的用户名(03前的为用户名)-注意:参数-A要大写
TELNET就很简单了
开始 运行 TELNET 然后
再HELP回车 就看到了
王继业:电子信息吧,电子信息工程大类专业包括光学工程。现在教育部有一个专业标准,就是这么定的。AddTime:2020-06-21 23:46
Q:朱老师,我们这个光信息科学与技术现在属于哪一类专业?那些报考公务员啥的划分专业用。
朱伟利:光学工程,或光电信息与工程专业,你看看有没有?
Q:我看光信息科学与技术被划为电子信息科学类,电子信息相关专业了吧
A:也许吧。
A:我也不太清楚了,原来咱们的专业已经改名了,好像叫光电子信息与工程专业。也许我说的不确切
==============以王老师的为准======================================
公务员考试中光信息科学与技术属于哪一类,有没有比较官方的权威的专业分类。
提问者采纳
天逸教育为您查询了公务员考试专业课设置目录
你的专业属于 理学大门类 电子信息科学类二级类
来自:http://zhidao.baidu.com/link?url=-4UUUjVV7ZZb50ZXYugWAh4CvqnFtN2wrmqbms5ajBHQpMNclwYzmQri_Ifr_h5YRnL9mBTErlnLSxx0QJNWYq
光信息科学与技术在湖北属于哪一类呢? 湖北公务员考试网的回复 你好,光信息科学与技术专业属于电子信息类。
电子信息科学类(如电子信息科学与技术、微电子学、光信息科学与技术等),本人学习光信息的。。。呵呵!
电子信息类 电子信息工程、电子信息、电子工程、通信工程、信息工程、电子科学技术、 电子信息科学与技术、 应用电子技术、微电子学、光信息科学与技术、光电子技术科学、光学工程、信号与信息处理、信息对抗技术、信息显示与光电技术、集成电路设计与集成系统、光电信息工程、电气信息工程、广播电视工程、微电子制造工程、物理电子学、电路与系统、微电子学与固体电子学、电磁场与微波技术、通信与信息系统!!
电子信息科学及技术类:电子信息科学与技术 微电子学 光信息科学与技术
来源网站:
http://www.yuloo.com/news/133770.html
http://www.hnksw.com/official/show/48291.html

DownLoad 划分From重庆:
下载文件
2013北京公务员:
503 210869101 石景山区质量技术监督稽查队 行政机关 市级机关 石景山区 稽查队 综合执法职位 负责综合执法工作 1 本科 学士 电子信息工程 不限 否 1:5 两年以上(含两年) 否 否 www.bjtsb.gov.cn
1230 820955106 门头沟区安全生产检查执法队 参照公务员法管理单位 区县及以下机关 门头沟区 执法检查员 负责计算机网络维护、信息化平台管理、生产经营单位信息平台监控管理工作 1 本科及以上 取得相应学位 信息管理与信息系统、计算机软件、电子信息科学与技术、计算机科学与技术 不限 全日制高等院校毕业 否 1:3 两年以上(含两年) 否 否 69842130或69868902 http://www.bjmtg.gov.cn/
1232 820955104 门头沟区安全生产检查执法队 参照公务员法管理单位 区县及以下机关 门头沟区 清水镇安全员 负责镇、街安全生产执法检查、执法文书整理及日常工作 1 本科及以上 取得相应学位 经济学、法学、行政管理、电子信息科学与技术、建筑学、公共安全管理 不限 否 1:3 两年以上(含两年) 否 否 69842130或69868902 http://www.bjmtg.gov.cn/ 派驻清水镇安全生产监督员长期住在山里乡镇,经常下乡,适合男性报考
1407 221431501 北京市顺义区民防局 行政机关 区县及以下机关 顺义区 指挥通信科 指挥自动化 负责指挥通信、警报、信息情报工作 1 本科及以上 取得相应学位 计算机科学与技术、电子信息工程 中共党员 否 1:3 两年以上(含两年) 否 否 69432518 http://www.shyld.gov.cn/
2013年上半年北京公务员考试时间为2013年3月2日。
http://www.exam8.com/zige/gongwuyuan/zhaokao/201301/2518948.html
Q:朱老师,我们这个光信息科学与技术现在属于哪一类专业?那些报考公务员啥的划分专业用。
朱伟利:光学工程,或光电信息与工程专业,你看看有没有?
Q:我看光信息科学与技术被划为电子信息科学类,电子信息相关专业了吧
A:也许吧。
A:我也不太清楚了,原来咱们的专业已经改名了,好像叫光电子信息与工程专业。也许我说的不确切
==============以王老师的为准======================================
公务员考试中光信息科学与技术属于哪一类,有没有比较官方的权威的专业分类。
提问者采纳
天逸教育为您查询了公务员考试专业课设置目录
你的专业属于 理学大门类 电子信息科学类二级类
来自:http://zhidao.baidu.com/link?url=-4UUUjVV7ZZb50ZXYugWAh4CvqnFtN2wrmqbms5ajBHQpMNclwYzmQri_Ifr_h5YRnL9mBTErlnLSxx0QJNWYq
光信息科学与技术在湖北属于哪一类呢? 湖北公务员考试网的回复 你好,光信息科学与技术专业属于电子信息类。
电子信息科学类(如电子信息科学与技术、微电子学、光信息科学与技术等),本人学习光信息的。。。呵呵!
电子信息类 电子信息工程、电子信息、电子工程、通信工程、信息工程、电子科学技术、 电子信息科学与技术、 应用电子技术、微电子学、光信息科学与技术、光电子技术科学、光学工程、信号与信息处理、信息对抗技术、信息显示与光电技术、集成电路设计与集成系统、光电信息工程、电气信息工程、广播电视工程、微电子制造工程、物理电子学、电路与系统、微电子学与固体电子学、电磁场与微波技术、通信与信息系统!!
电子信息科学及技术类:电子信息科学与技术 微电子学 光信息科学与技术
来源网站:
http://www.yuloo.com/news/133770.html
http://www.hnksw.com/official/show/48291.html
DownLoad 划分From重庆:

2013北京公务员:
503 210869101 石景山区质量技术监督稽查队 行政机关 市级机关 石景山区 稽查队 综合执法职位 负责综合执法工作 1 本科 学士 电子信息工程 不限 否 1:5 两年以上(含两年) 否 否 www.bjtsb.gov.cn
1230 820955106 门头沟区安全生产检查执法队 参照公务员法管理单位 区县及以下机关 门头沟区 执法检查员 负责计算机网络维护、信息化平台管理、生产经营单位信息平台监控管理工作 1 本科及以上 取得相应学位 信息管理与信息系统、计算机软件、电子信息科学与技术、计算机科学与技术 不限 全日制高等院校毕业 否 1:3 两年以上(含两年) 否 否 69842130或69868902 http://www.bjmtg.gov.cn/
1232 820955104 门头沟区安全生产检查执法队 参照公务员法管理单位 区县及以下机关 门头沟区 清水镇安全员 负责镇、街安全生产执法检查、执法文书整理及日常工作 1 本科及以上 取得相应学位 经济学、法学、行政管理、电子信息科学与技术、建筑学、公共安全管理 不限 否 1:3 两年以上(含两年) 否 否 69842130或69868902 http://www.bjmtg.gov.cn/ 派驻清水镇安全生产监督员长期住在山里乡镇,经常下乡,适合男性报考
1407 221431501 北京市顺义区民防局 行政机关 区县及以下机关 顺义区 指挥通信科 指挥自动化 负责指挥通信、警报、信息情报工作 1 本科及以上 取得相应学位 计算机科学与技术、电子信息工程 中共党员 否 1:3 两年以上(含两年) 否 否 69432518 http://www.shyld.gov.cn/
2013年上半年北京公务员考试时间为2013年3月2日。
http://www.exam8.com/zige/gongwuyuan/zhaokao/201301/2518948.html
有三道PHP的面试题,除了第三题需要一些经验和对HTTP协议理解外,前面两题其实很简单,但是很少遇到有人答正确的,大部分人我想都不是技术问题,而是思考是否严谨的问题。
1. 下面语句输出什么?为什么?
if ($a=$b) printf("a==b");
else printf("a!=b");
2. $array['anykey']和$array[anykey]有什么区别?
3. 写出使用telnet命令通过GET的方式访问http://www.toplee.com/index.php 得到页面返回的方法(不是用PHP实现,用dos或者unix命令行实现)。
MyResult:
1.程序把$b赋值给$a,然后判断$a值~~~因为$a=null 所以$a自然为false!
2.这样写的话在警告没有打开的条件 不会出现提示错误的 anykey 只要没有定义成常量 效果一样 (节约了两个单引号) :)
3.貌似这样没有什么好处吧 :) curl更强大
贴上51.com几道题:
1. 禁用COOKIE 后 SEESION 还能用吗?
2. 抓取远程图片到本地,你会用什么函数?
3. 已知姓名A,姓名B,给一个求他们缘份的算法
4. 你觉得在PV10W的时候, 同等配置下,LUNIX 比WIN快多少?
5. 简述POST 和GET传输的最大容量分别是多少?
6. 用最少的代码写一个求3值最大值的函数.
大家可以试一下哦.
阅读全文
1. 下面语句输出什么?为什么?
if ($a=$b) printf("a==b");
else printf("a!=b");
2. $array['anykey']和$array[anykey]有什么区别?
3. 写出使用telnet命令通过GET的方式访问http://www.toplee.com/index.php 得到页面返回的方法(不是用PHP实现,用dos或者unix命令行实现)。
MyResult:
1.程序把$b赋值给$a,然后判断$a值~~~因为$a=null 所以$a自然为false!
2.这样写的话在警告没有打开的条件 不会出现提示错误的 anykey 只要没有定义成常量 效果一样 (节约了两个单引号) :)
3.貌似这样没有什么好处吧 :) curl更强大
贴上51.com几道题:
1. 禁用COOKIE 后 SEESION 还能用吗?
2. 抓取远程图片到本地,你会用什么函数?
3. 已知姓名A,姓名B,给一个求他们缘份的算法
4. 你觉得在PV10W的时候, 同等配置下,LUNIX 比WIN快多少?
5. 简述POST 和GET传输的最大容量分别是多少?
6. 用最少的代码写一个求3值最大值的函数.
大家可以试一下哦.
我来做个标准:
1. 禁用COOKIE 后 SEESION 还能用吗?
能用,页面get mode提交session.
2. 抓取远程图片到本地,你会用什么函数?
我会用curl
3. 已知姓名A,姓名B,给一个求他们缘份的算法
ascii (最好简单为好)
4. 你觉得在PV10W的时候, 同等配置下,LUNIX 比WIN快多少?
百分之二十以上
5. 简述POST 和GET传输的最大容量分别是多少?
无限 和 1024
6. 用最少的代码写一个求3值最大值的函数.
max()
1. 禁用COOKIE 后 SEESION 还能用吗?
能用,页面get mode提交session.
2. 抓取远程图片到本地,你会用什么函数?
我会用curl
3. 已知姓名A,姓名B,给一个求他们缘份的算法
ascii (最好简单为好)
4. 你觉得在PV10W的时候, 同等配置下,LUNIX 比WIN快多少?
百分之二十以上
5. 简述POST 和GET传输的最大容量分别是多少?
无限 和 1024
6. 用最少的代码写一个求3值最大值的函数.
max()

[转载]去年在巴黎举行的PHP开发者大会中,PHP6开发的消息开始流传开来,
于PHP大会讨论的PHP6,将有很大幅度的变化,但这只是草案阶段,
并不代表所有会议的机率都会随着PHP6的发布而包含记录中所有的变更
也就是说,在发布PHP6之前,还是会有异动的情形,但是可以确定的是
下面所列的数项变化,将会随着PHP6一同面世(当然不是百分百乐,)
赶快来看看这些新特性吧
1.支持Unicode
支持Unicode是有其必然,虽然Unicode占用较多的空间,但Unicode带来
的便利性,远超过占用空间的缺点,尤其在国际化的今天,硬件设备越来
越强大,网速也大幅度的提升,这么一点小小的缺点是可以忽略的。另外
一点,PHP也可以在.ini文件中设定是否开启支持Unicode,决定权在你自己,
这是一个不错的点子,关掉Unicode的支持,PHP的性能并不会有大幅度的
提升,主要的影响在于需要引用字符串的函数。
2.Register Globals 将被移除
这是一个重要的决定,说多新进的PHP开发者会觉得Register Globals满
方便的,但是却忽略了Register Globals会带来程序上安全性的隐患,大
多数的主机上此项功能是关闭的,印象中从PHP4.3.x版开始时,此项默认
设置值即是关闭状态,PHP6正式移除Register Globals也代表着如果程序
是由PHP3时代的产物,将完全无法使用,除了改写一途外,别无他法。相
信现在的PHP世界里,仍使用PHP3时代所产生的程序应该是少之又少。
3.Magic Quotes 将消失
Magic Quotes主要是自动转义需要转义的字符,此项功能移除叶符合大多
数PHP开发者的心声。
4.Safe Mode 取消
老实说,这个模式不知道哪里不好,取消就取消吧,反正也用不到
5.’var’ 别名为 ‘public’
在类中的var声明变成public的别名,相信是为了兼容PHP5而作的决定,
PHP6现在也可以称作为OO语言了。
6.通过引用返回将出错
现在透过引用返回编译器将会报错 例如$a =& new b()、function &c(),
OO语言默认就是引用,所以不需要再使用&了。
7.zend.ze1 compatbility mode 将被移去
Zend.ze1相容模式将被移去,PHP5是为兼容旧有PHP4,所以在.ini中可选择是否
开启相容模式,原因在于PHP5使用的是第二代解析引擎,但是相容模式并不是百
分之百能解析PHP4语法,所以旧时代的产物,移除。
8.Freetype 1 and GD 1 support 将不见
这两个是很久的Libs,所以不再支持,GD1早已被现在的GD2取代了。
9.dl() 被移到 SAPI 中
dl()主要是让设计师加载extension Libs,现在被移到 SAPI 中
10.Register Long Array 去除
从PHP5起默认是关闭,再PHP6中正式移除。
11.一些Extension的变更
例如 XMLReader 和 XMLWriter 将不再是以Extension的方式出现,他们将被移入
到PHP的核心之中,并且默认是开启,ereg extension将被放入PECL,代表着它将
被移出PHP核心,这也是为了让路给新的正则表达式extension,
此外,Fileinfo extension 也将被导入PHP的核心之中。
12.APC将被导入核心
这是一个提高PHP性能的功能,现在它将被放入PHP核心中,并且可以选择是否启用APC
13.告别ASP风格的起始标签
原来是为了取悦ASP开发者转向使用PHP,现今已经不再需要这种做法了,
最后,别期望PHP6的性能可以全面超过PHP5,有可能的是PHP6的执行效率会比
PHP5还要来的慢的,但是可以预期的是,PHP开发小组将会努力的完善PHP5,超
越PHP5。
那么,对PHP6有兴趣的朋友现在可以到PHP官方网站上下载,试试这些功能是否真的已经
在PHP6中体现出来了,下载地址http://snaps.php.net/
于PHP大会讨论的PHP6,将有很大幅度的变化,但这只是草案阶段,
并不代表所有会议的机率都会随着PHP6的发布而包含记录中所有的变更
也就是说,在发布PHP6之前,还是会有异动的情形,但是可以确定的是
下面所列的数项变化,将会随着PHP6一同面世(当然不是百分百乐,)
赶快来看看这些新特性吧
1.支持Unicode
支持Unicode是有其必然,虽然Unicode占用较多的空间,但Unicode带来
的便利性,远超过占用空间的缺点,尤其在国际化的今天,硬件设备越来
越强大,网速也大幅度的提升,这么一点小小的缺点是可以忽略的。另外
一点,PHP也可以在.ini文件中设定是否开启支持Unicode,决定权在你自己,
这是一个不错的点子,关掉Unicode的支持,PHP的性能并不会有大幅度的
提升,主要的影响在于需要引用字符串的函数。
2.Register Globals 将被移除
这是一个重要的决定,说多新进的PHP开发者会觉得Register Globals满
方便的,但是却忽略了Register Globals会带来程序上安全性的隐患,大
多数的主机上此项功能是关闭的,印象中从PHP4.3.x版开始时,此项默认
设置值即是关闭状态,PHP6正式移除Register Globals也代表着如果程序
是由PHP3时代的产物,将完全无法使用,除了改写一途外,别无他法。相
信现在的PHP世界里,仍使用PHP3时代所产生的程序应该是少之又少。
3.Magic Quotes 将消失
Magic Quotes主要是自动转义需要转义的字符,此项功能移除叶符合大多
数PHP开发者的心声。
4.Safe Mode 取消
老实说,这个模式不知道哪里不好,取消就取消吧,反正也用不到
5.’var’ 别名为 ‘public’
在类中的var声明变成public的别名,相信是为了兼容PHP5而作的决定,
PHP6现在也可以称作为OO语言了。
6.通过引用返回将出错
现在透过引用返回编译器将会报错 例如$a =& new b()、function &c(),
OO语言默认就是引用,所以不需要再使用&了。
7.zend.ze1 compatbility mode 将被移去
Zend.ze1相容模式将被移去,PHP5是为兼容旧有PHP4,所以在.ini中可选择是否
开启相容模式,原因在于PHP5使用的是第二代解析引擎,但是相容模式并不是百
分之百能解析PHP4语法,所以旧时代的产物,移除。
8.Freetype 1 and GD 1 support 将不见
这两个是很久的Libs,所以不再支持,GD1早已被现在的GD2取代了。
9.dl() 被移到 SAPI 中
dl()主要是让设计师加载extension Libs,现在被移到 SAPI 中
10.Register Long Array 去除
从PHP5起默认是关闭,再PHP6中正式移除。
11.一些Extension的变更
例如 XMLReader 和 XMLWriter 将不再是以Extension的方式出现,他们将被移入
到PHP的核心之中,并且默认是开启,ereg extension将被放入PECL,代表着它将
被移出PHP核心,这也是为了让路给新的正则表达式extension,
此外,Fileinfo extension 也将被导入PHP的核心之中。
12.APC将被导入核心
这是一个提高PHP性能的功能,现在它将被放入PHP核心中,并且可以选择是否启用APC
13.告别ASP风格的起始标签
原来是为了取悦ASP开发者转向使用PHP,现今已经不再需要这种做法了,
最后,别期望PHP6的性能可以全面超过PHP5,有可能的是PHP6的执行效率会比
PHP5还要来的慢的,但是可以预期的是,PHP开发小组将会努力的完善PHP5,超
越PHP5。
那么,对PHP6有兴趣的朋友现在可以到PHP官方网站上下载,试试这些功能是否真的已经
在PHP6中体现出来了,下载地址http://snaps.php.net/
Crontab跑昨天的DB时间:
$date = date('Y-m-d',strtotime("-1 day"));//昨天
$date = date('Ymd',strtotime("-1 day"));
结果:
2011-03-15
20110315
Oct-23-2009 09:21:00
计算秒数(60 秒):
反过来,由Y-m-d H:i:s变为unix时间秒:
1)Mysql:
UNIX_TIMESTAMP(etime) > UNIX_TIMESTAMP())
http://www.cnblogs.com/showker/archive/2010/03/18/1689054.html
2)PHP:
用strtotime(格式)可以获取指定时间的时间戳
$date = date('Y-m-d',strtotime("-1 day"));//昨天
$date = date('Ymd',strtotime("-1 day"));
结果:
2011-03-15
20110315
$fromDate1=mktime(9,21,0,10,23,2009);//开始时间 ---> 时,分,秒 月,日,年
echo date("M-d-Y H:i:s",$fromDate1);
echo date("M-d-Y H:i:s",$fromDate1);
Oct-23-2009 09:21:00
$date_d=date("d")-1;//天数减一天,数字想减少罢了。
$starttime = date("Y-m-d 00:00:00", strtotime("-3 day"));//天数减少3天,蕴含日期相见月份相减少。 date("Y-m-d H:i:s")
$lastread = time()-3*24*60*60;//减少是秒数,看下文sql构造:)
echo date("Y-m-d H:i:s",$lastread);
$starttime = date("Y-m-d 00:00:00", strtotime("-3 day"));//天数减少3天,蕴含日期相见月份相减少。 date("Y-m-d H:i:s")
$lastread = time()-3*24*60*60;//减少是秒数,看下文sql构造:)
echo date("Y-m-d H:i:s",$lastread);
计算秒数(60 秒):
$date_time = time();
$date_time2 = time();
$date_time2-$date_time >= 60 //60秒
$date_time2 = time();
$date_time2-$date_time >= 60 //60秒
反过来,由Y-m-d H:i:s变为unix时间秒:
1)Mysql:
UNIX_TIMESTAMP(etime) > UNIX_TIMESTAMP())
http://www.cnblogs.com/showker/archive/2010/03/18/1689054.html
2)PHP:
用strtotime(格式)可以获取指定时间的时间戳
<?php
require_once ("/data0/vshare/app/rank/config.php");
define("USER_SEARCH_IASK_LOG_PATH", "/data0/vshare/logs/user_search/iasks/");//删除的用户及视频日志目录(爱问)
echo "程序于 " . date("Y-m-d H:i:s") . " 开始执行:\n";
$date_d=date("d")-1;
if($date_d<10)
{
$date_d="0".$date_d;
}
$iask_filename = USER_SEARCH_IASK_LOG_PATH.date("Ym")."/".$date_d."/boke_ay_" . date("Ymd", strtotime("-1 day")) .".log";
$iask_filename_html = USER_SEARCH_IASK_LOG_PATH.date("Ym")."/".$date_d."/boke_ay_" . date("Ymd", strtotime("-1 day")) .".html";
$conn_db_3306_r = @mysql_connect(DBHOST_VIDEO_R_aoyun, DBUSER_VIDEO_R_aoyun, DBPASSWD_VIDEO_R_aoyun) or
die(DBHOST_VIDEO_R_aoyun.DBUSER_VIDEO_R_aoyun.DBPASSWD_VIDEO_R_aoyun."Can't connect to 3306 port readonly database");//长连接
//统计昨天登录过的用户个人中心信息
echo "正在从MySQL数据库中取出所有的用户userid,请稍候....";
//exit(0);
//$select_dt_user_r = @mysql_select_db("dt_video", $conn_db_3306_r) or die("Can't select database");
$select_dt_user_r = @mysql_select_db("dt_manage", $conn_db_3306_r) or die("Can't select database");
//$sql_tb_usertotal_r = "SELECT videoid,up_userid FROM tb_video_total where activeid = 0 limit 10";/*上线后打开*/
$starttime = date("Y-m-d 00:00:00", strtotime("-3 day"));
$endtime = date("Y-m-d 00:00:00");
$sql_tb_usertotal_r = "select videoid,up_userid from tb_video_activity where (adddate>'".$starttime."' or appr_time>'".$starttime."') and adddate<'".$endtime."' and appr_status=1 and active_status in(1,0) and conv_status=1 and del_status=0 and activeid=128;";/*上线后打开*/
$query_tb_usertotal_r = mysql_query($sql_tb_usertotal_r, $conn_db_3306_r) or die("Query Error:" .
mysql_error() . "\n");
echo $sql_tb_usertotal_r."\n";
echo "\n[取出所有的用户userid:完成]\n";
$i=0;
echo $iask_filename."\n";
if(file_exists($iask_filename))
{
unlink($iask_filename);
}
while ($row_tb_usertotal_r = mysql_fetch_assoc($query_tb_usertotal_r))
{
if (!($i % 2000))
{
sleep(1);
}
$vid = $row_tb_usertotal_r['videoid'];
$uid = $row_tb_usertotal_r['up_userid'];
$result['vid'] = $vid;
$result['uid'] = $uid;
/*
echo "VID:". $result['vid'] = $vid."\n";
echo "UID:".$result['uid'] = $uid."\n";
*/
$content = getContent($result,$i);
us_writeFile($content, $iask_filename, USER_SEARCH_IASK_LOG_PATH .date("Ym")."/".$date_d);
$i=$i+1;
}
if (file_exists($iask_filename) && is_readable($iask_filename))
{
echo "正在向爱问推送数据,请稍候....\n";
//pclose(popen("touch {$iask_filename} && chmod 0664 {$iask_filename} && /usr/bin/rsync -vzrtup {$iask_filename} 10.69.2.48::usersource_video/",
//"r"));
$command="/usr/bin/rsync -avgt --progress --password-file=/usr/local/etc/rsyncd.secrets " . USER_SEARCH_IASK_LOG_PATH ."*"." backupuser@219.142.118.48::boke_2008_sum_olympic_video";
echo $command."\n";
pclose(popen("touch {$iask_filename} && chmod 0664 {$iask_filename} && $command",
"r"));
$command="/usr/bin/rsync -avgt --progress --password-file=/usr/local/etc/rsyncd.secrets " . USER_SEARCH_IASK_LOG_PATH ."*"." backupuser@172.16.153.70::olympic_video/";
pclose(popen("touch {$iask_filename} && chmod 0664 {$iask_filename} && $command",
"r"));
$command="/usr/bin/rsync -avu " . $iask_filename ." 172.16.6.198::vblog/";
pclose(popen("touch {$iask_filename} && chmod 0664 {$iask_filename} && $command",
"r"));
$command="cp {$iask_filename} {$iask_filename_html}";
pclose(popen($command, "r"));
$command="/usr/bin/rsync -avu {$iask_filename_html} {$iask_filename} 10.68.1.30::v_blog_sina_com_cn/htdocs/ay_data/";
pclose(popen($command, "r"));
$command="/usr/bin/rsync -avu {$iask_filename_html} {$iask_filename} 10.68.1.71::v_blog_sina_com_cn/htdocs/ay_data/";
pclose(popen($command, "r"));
echo "[推送完成]\n";
}
echo "\n[完成]\n";
echo "程序于 " . date("Y-m-d H:i:s") . " 执行结束。\n\n";
function us_path_validate($path)
{
$arraypath = split("\/+", $path);
$tmppath = "";
for ($i = 0; $i < count($arraypath); $i++)
{
if ("" == $arraypath[$i])
continue;
$tmppath .= (0 == $i ? "":"/") . $arraypath[$i];
if (!is_dir($tmppath))
{
if (!mkdir($tmppath, 0777))
{
return false;
}
}
}
return true;
}
function us_writeFile($content, $filename, $dirpath)
{
if (!us_path_validate($dirpath))
exit();
$fp = fopen($filename, "a+");
if (!@fwrite($fp, $content . "\n"))
{
@fclose($fp);
return false;
}
fclose($fp);
return true;
}
function getContent($result,$i)
{
/*
if($i==0)
{
$str = "VID\tUID\t日期\n";
$str .= $result['vid'] . "\t";//视频总量
$str .= $result['uid'] . "\t";//userid,用户UID
$str .= date("Y-m-d",strtotime("-1 day")). "";
return $str;
}else{
*/
$str = $result['vid'] . "\t";//视频总量
$str .= $result['uid'] . "\t";//userid,用户UID
$str .= date("Y-m-d",strtotime("-1 day")) . "";
return $str;
// }
}
?>
require_once ("/data0/vshare/app/rank/config.php");
define("USER_SEARCH_IASK_LOG_PATH", "/data0/vshare/logs/user_search/iasks/");//删除的用户及视频日志目录(爱问)
echo "程序于 " . date("Y-m-d H:i:s") . " 开始执行:\n";
$date_d=date("d")-1;
if($date_d<10)
{
$date_d="0".$date_d;
}
$iask_filename = USER_SEARCH_IASK_LOG_PATH.date("Ym")."/".$date_d."/boke_ay_" . date("Ymd", strtotime("-1 day")) .".log";
$iask_filename_html = USER_SEARCH_IASK_LOG_PATH.date("Ym")."/".$date_d."/boke_ay_" . date("Ymd", strtotime("-1 day")) .".html";
$conn_db_3306_r = @mysql_connect(DBHOST_VIDEO_R_aoyun, DBUSER_VIDEO_R_aoyun, DBPASSWD_VIDEO_R_aoyun) or
die(DBHOST_VIDEO_R_aoyun.DBUSER_VIDEO_R_aoyun.DBPASSWD_VIDEO_R_aoyun."Can't connect to 3306 port readonly database");//长连接
//统计昨天登录过的用户个人中心信息
echo "正在从MySQL数据库中取出所有的用户userid,请稍候....";
//exit(0);
//$select_dt_user_r = @mysql_select_db("dt_video", $conn_db_3306_r) or die("Can't select database");
$select_dt_user_r = @mysql_select_db("dt_manage", $conn_db_3306_r) or die("Can't select database");
//$sql_tb_usertotal_r = "SELECT videoid,up_userid FROM tb_video_total where activeid = 0 limit 10";/*上线后打开*/
$starttime = date("Y-m-d 00:00:00", strtotime("-3 day"));
$endtime = date("Y-m-d 00:00:00");
$sql_tb_usertotal_r = "select videoid,up_userid from tb_video_activity where (adddate>'".$starttime."' or appr_time>'".$starttime."') and adddate<'".$endtime."' and appr_status=1 and active_status in(1,0) and conv_status=1 and del_status=0 and activeid=128;";/*上线后打开*/
$query_tb_usertotal_r = mysql_query($sql_tb_usertotal_r, $conn_db_3306_r) or die("Query Error:" .
mysql_error() . "\n");
echo $sql_tb_usertotal_r."\n";
echo "\n[取出所有的用户userid:完成]\n";
$i=0;
echo $iask_filename."\n";
if(file_exists($iask_filename))
{
unlink($iask_filename);
}
while ($row_tb_usertotal_r = mysql_fetch_assoc($query_tb_usertotal_r))
{
if (!($i % 2000))
{
sleep(1);
}
$vid = $row_tb_usertotal_r['videoid'];
$uid = $row_tb_usertotal_r['up_userid'];
$result['vid'] = $vid;
$result['uid'] = $uid;
/*
echo "VID:". $result['vid'] = $vid."\n";
echo "UID:".$result['uid'] = $uid."\n";
*/
$content = getContent($result,$i);
us_writeFile($content, $iask_filename, USER_SEARCH_IASK_LOG_PATH .date("Ym")."/".$date_d);
$i=$i+1;
}
if (file_exists($iask_filename) && is_readable($iask_filename))
{
echo "正在向爱问推送数据,请稍候....\n";
//pclose(popen("touch {$iask_filename} && chmod 0664 {$iask_filename} && /usr/bin/rsync -vzrtup {$iask_filename} 10.69.2.48::usersource_video/",
//"r"));
$command="/usr/bin/rsync -avgt --progress --password-file=/usr/local/etc/rsyncd.secrets " . USER_SEARCH_IASK_LOG_PATH ."*"." backupuser@219.142.118.48::boke_2008_sum_olympic_video";
echo $command."\n";
pclose(popen("touch {$iask_filename} && chmod 0664 {$iask_filename} && $command",
"r"));
$command="/usr/bin/rsync -avgt --progress --password-file=/usr/local/etc/rsyncd.secrets " . USER_SEARCH_IASK_LOG_PATH ."*"." backupuser@172.16.153.70::olympic_video/";
pclose(popen("touch {$iask_filename} && chmod 0664 {$iask_filename} && $command",
"r"));
$command="/usr/bin/rsync -avu " . $iask_filename ." 172.16.6.198::vblog/";
pclose(popen("touch {$iask_filename} && chmod 0664 {$iask_filename} && $command",
"r"));
$command="cp {$iask_filename} {$iask_filename_html}";
pclose(popen($command, "r"));
$command="/usr/bin/rsync -avu {$iask_filename_html} {$iask_filename} 10.68.1.30::v_blog_sina_com_cn/htdocs/ay_data/";
pclose(popen($command, "r"));
$command="/usr/bin/rsync -avu {$iask_filename_html} {$iask_filename} 10.68.1.71::v_blog_sina_com_cn/htdocs/ay_data/";
pclose(popen($command, "r"));
echo "[推送完成]\n";
}
echo "\n[完成]\n";
echo "程序于 " . date("Y-m-d H:i:s") . " 执行结束。\n\n";
function us_path_validate($path)
{
$arraypath = split("\/+", $path);
$tmppath = "";
for ($i = 0; $i < count($arraypath); $i++)
{
if ("" == $arraypath[$i])
continue;
$tmppath .= (0 == $i ? "":"/") . $arraypath[$i];
if (!is_dir($tmppath))
{
if (!mkdir($tmppath, 0777))
{
return false;
}
}
}
return true;
}
function us_writeFile($content, $filename, $dirpath)
{
if (!us_path_validate($dirpath))
exit();
$fp = fopen($filename, "a+");
if (!@fwrite($fp, $content . "\n"))
{
@fclose($fp);
return false;
}
fclose($fp);
return true;
}
function getContent($result,$i)
{
/*
if($i==0)
{
$str = "VID\tUID\t日期\n";
$str .= $result['vid'] . "\t";//视频总量
$str .= $result['uid'] . "\t";//userid,用户UID
$str .= date("Y-m-d",strtotime("-1 day")). "";
return $str;
}else{
*/
$str = $result['vid'] . "\t";//视频总量
$str .= $result['uid'] . "\t";//userid,用户UID
$str .= date("Y-m-d",strtotime("-1 day")) . "";
return $str;
// }
}
?>
function GetUnreadNum($uid)
{
$cache = $this->_connectCache();
$num = $cache->get(CACHE_SYSLOG."_new_".$uid);
if($num===false)
{
$lastread = $cache->get(CACHE_SYSLOG."_read_".$uid);
if($lastread===false) $lastread = time()-3*24*60*60;
$db = $this->_connectDb(0);
$sql = "select count(*) from syslog where uid='$uid' and time>FROM_UNIXTIME($lastread)";
$st = $db->query($sql);
$num = $st->fetchColumn()+0;
$cache->set(CACHE_SYSLOG."_new_".$uid,$num);
}
return $num;
}
{
$cache = $this->_connectCache();
$num = $cache->get(CACHE_SYSLOG."_new_".$uid);
if($num===false)
{
$lastread = $cache->get(CACHE_SYSLOG."_read_".$uid);
if($lastread===false) $lastread = time()-3*24*60*60;
$db = $this->_connectDb(0);
$sql = "select count(*) from syslog where uid='$uid' and time>FROM_UNIXTIME($lastread)";
$st = $db->query($sql);
$num = $st->fetchColumn()+0;
$cache->set(CACHE_SYSLOG."_new_".$uid,$num);
}
return $num;
}
MySQL客户端显示汉字乱码的解决
MySQL 服务端不加任何参数启动时,客户端可以默认正常显示汉字,如下面所示
PHP code:
D:mysql5>.binmysqld-max-nt.exe --console
061106 20:35:21 InnoDB: Started; log sequence number 0 43655
061106 20:35:22 [Note] .binmysqld-max-nt.exe: ready for connections.
Version: '5.0.18-nt-max' socket: '' port: 3306 MySQL Community Edition (GPL)
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:Documents and SettingsAdministrator>cd d:mysql5bin
C:Documents and SettingsAdministrator>d:
D:mysql5bin>mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1 to server version: 5.0.18-nt-max
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql> use test
Database changed
mysql> SHOW VARIABLES LIKE 'character_set%';
阅读全文
MySQL 服务端不加任何参数启动时,客户端可以默认正常显示汉字,如下面所示
PHP code:
D:mysql5>.binmysqld-max-nt.exe --console
061106 20:35:21 InnoDB: Started; log sequence number 0 43655
061106 20:35:22 [Note] .binmysqld-max-nt.exe: ready for connections.
Version: '5.0.18-nt-max' socket: '' port: 3306 MySQL Community Edition (GPL)
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:Documents and SettingsAdministrator>cd d:mysql5bin
C:Documents and SettingsAdministrator>d:
D:mysql5bin>mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1 to server version: 5.0.18-nt-max
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql> use test
Database changed
mysql> SHOW VARIABLES LIKE 'character_set%';
