Heim > Backend-Entwicklung > PHP-Tutorial > PHP惯用整理

PHP惯用整理

WBOY
Freigeben: 2016-06-13 13:16:49
Original
864 Leute haben es durchsucht

PHP常用整理

1、通过域名取得网站IP地址 gethostbyname('域名');?? 如gethostbyname('www.baidu.com');返回IP地址

ip2long('IP地址')? 将IP地址转为long数据类型
long2ip('long类型')?? 将long类型转换为IP地址

?

2、将一张表的数据复制到另外一张表中(两张表的结构必须一致)

INSERT INTO user_new(t_name,sex) SELECT t_name,sex FROM user_Old

?

3、mysql中分表的建立方法

mysql> CREATE TABLE IF NOT EXISTS `user1` ( -> `id` int(11) NOT NULL AUTO_INCREMENT, -> `name` varchar(50) DEFAULT NULL, -> `sex` int(1) NOT NULL DEFAULT '0', -> PRIMARY KEY (`id`) -> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; Query OK, 0 rows affected (0.05 sec) mysql> CREATE TABLE IF NOT EXISTS `user2` ( -> `id` int(11) NOT NULL AUTO_INCREMENT, -> `name` varchar(50) DEFAULT NULL, -> `sex` int(1) NOT NULL DEFAULT '0', -> PRIMARY KEY (`id`) -> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; Query OK, 0 rows affected (0.01 sec) mysql> INSERT INTO `user1` (`name`, `sex`) VALUES('张映', 0); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO `user2` (`name`, `sex`) VALUES('tank', 1); Query OK, 1 row affected (0.00 sec) mysql> CREATE TABLE IF NOT EXISTS `alluser` ( -> `id` int(11) NOT NULL AUTO_INCREMENT, -> `name` varchar(50) DEFAULT NULL, -> `sex` int(1) NOT NULL DEFAULT '0', -> INDEX(id) -> ) TYPE=MRG_MyISAM UNION=(user1,user2) INSERT_METHOD=LAST AUTO_INCREMENT=1 ; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> select id,name,sex from alluser; +----+--------+-----+ | id | name | sex | +----+--------+-----+ | 1 | 张映 | 0 | | 1 | tank | 1 | +----+--------+-----+ 2 rows in set (0.00 sec) mysql> INSERT INTO `alluser` (`name`, `sex`) VALUES('tank2', 0); Query OK, 1 row affected (0.00 sec) mysql> select id,name,sex from user2 -> ; +----+-------+-----+ | id | name | sex | +----+-------+-----+ | 1 | tank | 1 | | 2 | tank2 | 0 | +----+-------+-----+ 2 rows in set (0.00 sec)

?

Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

?

4、优化limit和offset
MySQL的limit工作原理就是先读取n条记录,然后抛弃前n条,读m条想要的,所以n越大,性能会越差。
优化前SQL: SELECT * FROM member ORDER BY last_active LIMIT 50,5
优化后SQL: select * from zb_sms_sendsmslog inner join (select id from zb_sms_sendsmslog order by id limit 100000,100) as tmp using(id)

分别在于,优化前的SQL需要更多I/O浪费,因为先读索引,再读数据,然后抛弃无需的行。而优化后的SQL(子查询那条)只读索引(Cover index)就可以了,然后通过member_id读取需要的列。

?

5、POST提交表单后的内容中的双引号全部都自动在前面被加上了反斜杠

$b_Str = $_POST[$b_ControlName]; if (get_magic_quotes_gpc()) { $b_Str = stripslashes($b_Str); }

Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

?

6、Php使用GBK编码时,参数中带有特殊中文字符如(咯

在执行Sql前先执行

SET character_set_connection=GBK, character_set_results=GBK,character_set_client=binary

?

?

?7、Smarty模板中定义变量

. Title:
Author:
ISBN:
Price:

Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

?

8、Smarty中使用类似for循环

用一段section模拟
{section name=loop loop=$count}
id: {$smarty.section.loop.index}
{/section}


给count赋个值
$smarty->assign('count', 5);

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage