一般的简单的获取随机几条数据的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的随机浮点数
阅读全文>
众所周知的原因
一个目录或者一个文件夹下面存放太多的文件,会导致系统缓慢
因此我们非常有必要限定一个文件夹或者一个目录里面文件的数量
当然每次去检查某个文件夹里面是否有1024或者2000个文件,是不现实的
这样会消耗很多资源而更加得不偿失
我们可以用一个文本来记录某个文件夹一个总共存放了多少个文件了
每增加一个文件,往记录文件里面写入一个字符的内容
$files_per_dir = 1024;
$count_file = ‘count_file.txt’;
$dir_path = ‘./’;
for($ii=0; $ii
阅读全文>
鉴于原来的数据库使用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’; [...]
阅读全文>
通常只需要更改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, phpmyadmin 发布在 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;
}
阅读全文>
windows下手动安装phpunit
1、到http://pear.phpunit.de/get/ 去下载最新版本
阅读全文>
标签:php, phpunit, windows, windows 下安装phpunit 发布在 php | 没有评论 »
最近公司开展一个项目,需要多人合作,因此规范一下编码规范是非常有必要的,借用了一下zend framework的编码规范来用
编码规范
阅读全文>
标签:php, php编码规范, zend framework 发布在 php | 没有评论 »
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, multiple, option, php, select 发布在 javascript, 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获取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);
阅读全文>