php程序员技术博客,关注PHP

专注于PHP技术

文章关键字 ‘php’

2011年11月9日,星期三

原创 mysql随机记录条数查询的优化

一般的简单的获取随机几条数据的sql语句可能是这样

SELECT * FROM table WHERE 1 ORDER BY RAND() LIMIT N;

当数据库记录总数比较少的时候,这种方式还是不慢的,然而到一个级别后,比如10万
这个时候就非常的慢了,需要优化

SELECT a.* FROM TABLE AS a JOIN (SELECT MAX( id ) AS bid FROM TABLE) AS b ON (a.id >= FLOOR(b.bid*RAND())) WHERE 1 LIMIT N

从表中取出最大的id,RAND() 产生的是一个0到1.0的随机浮点数

阅读全文>

 标签:, 发布在 mysql, php | 没有评论 »

2011年11月8日,星期二

原创 单个文件夹限制存放1024个或者2000个文件实现原理

众所周知的原因
一个目录或者一个文件夹下面存放太多的文件,会导致系统缓慢
因此我们非常有必要限定一个文件夹或者一个目录里面文件的数量
当然每次去检查某个文件夹里面是否有1024或者2000个文件,是不现实的
这样会消耗很多资源而更加得不偿失
我们可以用一个文本来记录某个文件夹一个总共存放了多少个文件了
每增加一个文件,往记录文件里面写入一个字符的内容

$files_per_dir = 1024;
$count_file = ‘count_file.txt’;
$dir_path = ‘./’;

for($ii=0; $ii

阅读全文>

 标签:, 发布在 php | 没有评论 »

2011年11月8日,星期二

原创 纯php导出无乱码的mysql插入语句

鉴于原来的数据库使用latin1字段,而数据库默认是utf8
导致虽然浏览网页时显示正常,但在phpmyadmin中查看数据时显示乱码
于是计划将原来的编码latin1转换成utf8格式
步骤如下
1. 备份数据库
2.导出一份只有数据库表结构的sql,并将其中的默认编码改为 DEFAULT CHARSET=utf8
ex:

CREATE TABLE IF NOT EXISTS `wpphp_links` (
`link_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`link_url` varchar(255) NOT NULL DEFAULT ”,
`link_name` varchar(255) NOT NULL DEFAULT ”,
PRIMARY KEY (`link_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

3.使用php代码导出无乱码的sql语句
4.删除数据库表,执行第二步导出的sql建立数据库表
5.查看在phpmyadmin中的中文数据是否显示乱码
代码如下,可以在附件中下载 纯php导出无乱码sql (适用于数据量不大的导出,数据量大的话需要改进一下分记录导出)

set_time_limit(0);
$db_host = ‘localhost’;
$db_user = ‘root’;
$db_password = ”;
$db_name = ‘dayanmei’;

$back_sql_file = ‘dayanmei.sql’; [...]

阅读全文>

 标签:, , 发布在 php | 没有评论 »

2011年10月27日,星期四

原创 phpMyAdmin管理多台服务器的配置

通常只需要更改config.inc.php文件,加多一个配置即可

$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = ‘cookie’;
/* Server parameters */
$cfg['Servers'][$i]['host'] = ‘localhost’;
$cfg['Servers'][$i]['connect_type'] = ‘tcp’;
$cfg['Servers'][$i]['compress'] = false;
/* Select mysqli if your server has it */
$cfg['Servers'][$i]['extension'] = ‘mysql’;
$cfg['Servers'][$i]['AllowNoPassword'] = true;
/* rajk – for blobstreaming */
$cfg['Servers'][$i]['bs_garbage_threshold'] = 50;
$cfg['Servers'][$i]['bs_repository_threshold'] = ‘32M’;
$cfg['Servers'][$i]['bs_temp_blob_timeout'] = 600;
$cfg['Servers'][$i]['bs_temp_log_threshold'] = ‘32M’;

如果不希望服务器地址被别人看见,需要填写mysql服务器地址和端口
则需要修改一下模板/libraries/auth/cookie.auth.lib.php
将这段代码替换

<?php
if (count($GLOBALS['cfg']['Servers']) > 1) {
[...]

阅读全文>

 标签:, 发布在 php | 没有评论 »

2010年05月11日,星期二

原创 php手机邮箱用户名检测类

/**
* Check检测类
*/
Class Check{

    /**
     * IsUsername函数:检测是否符合用户名格式
     * $Argv是要检测的用户名参数
     * $RegExp是要进行检测的正则语句
     * 返回值:符合用户名格式返回用户名,不是返回false
     */
    Function IsUsername($Argv){
        $RegExp='/^[a-zA-Z0-9_]{3,16}$/';        //由大小写字母跟数字组成并且长度在3-16字符直接
        return preg_match($RegExp,$Argv)?$Argv:false;
    }
阅读全文>

 标签:, 发布在 php | 没有评论 »

2010年05月6日,星期四

转载 安装phpunit在widows下

windows下手动安装phpunit
1、到http://pear.phpunit.de/get/ 去下载最新版本

阅读全文>

 标签:, , , 发布在 php | 没有评论 »

2010年04月2日,星期五

原创 zend framework php编码规范中文版 doc

最近公司开展一个项目,需要多人合作,因此规范一下编码规范是非常有必要的,借用了一下zend framework的编码规范来用
编码规范

阅读全文>

 标签:, , 发布在 php | 没有评论 »

2010年03月18日,星期四

原创 php multiple select javascript option的操作方法

How to get multiple select value both in javascript and php?

在csdn上找到一篇这样的文章

For PHP, we must use test[] for the select name, but it doesn’t work in javascript. document.form1.test is null.

So we should use document.getElementById(‘test[]‘) or document.form1['test[]‘]. On this way, we are able to get multiple select value in both PHP and JavaScript.



于是 扩展一下javascript如何操作option呢?比如增加或者减少项

阅读全文>

 标签:, , , , 发布在 javascript, php | 没有评论 »

2010年03月17日,星期三

原创 php函数中传入不定数量的参数

如何往php函数中传入不定数量的参数?
我觉得方法有两种
最简单的方法是传入一个数组,数组值的个数是可以不限制数量的
另外一个方法是使用func_get_args来获取参数

function args($sql) {
	$args = func_get_args();
	array_shift($args);
	var_dump($sql);
	if (isset($args[0]) and is_array($args[0])) { // 'All arguments in one array' syntax
		$args = $args[0];
	}
	var_dump($args);
}

args($sql = 1,$query = 3,$db = 'lee');
args(array('sql' => 1,'query' => 3,'db' => 'lee'));
阅读全文>

 标签:, , , 发布在 php | 没有评论 »

2010年03月17日,星期三

原创 php获取mysql数据库中的所有表名

如何用PHP获取MYSQL数据库的所有表名?记得在mysql命令行下面有条命令SHOW TABLES是显示mysql数据库里面所有数据表的,那么就用这条命令来遍历数据表名吧

  $server = 'localhost';
  $user = 'root';
  $pass = '';
  $dbname = 'dayanmei_com';
  $conn = mysql_connect($server,$user,$pass);
  if(!$conn) die("数据库系统连接失败!");
  mysql_select_db($dbname) or die("数据库连接失败!");
  $result = mysql_query("SHOW TABLES");
  while($row = mysql_fetch_array($result))
  {
   echo $row[0]."";
  }
  mysql_free_result($result);
阅读全文>

 标签:, , 发布在 mysql, php | 没有评论 »

李立全
李立全
来自湖南-宁远,现就职于广东-广州,
职业PHP程序员,Q  Q1504-967,
MSNlee#dayanmei.com.

日志列表

php程序员技术博客,关注PHP由 WordPress 驱动