统计查询
在应用中我们经常会用到一些统计数据,例如当前所有(或者满足某些条件)的用户数、所有用户的最大积分、用户的平均成绩等等,ThinkPHP为这些统计 *** 作提供了一系列的内置方法,包括:
方法 说明
Count
统计数量,参数是要统计的字段名(可选)
Max
获取最大值,参数是要统计的字段名(必须)
Min
获取最小值,参数是要统计的字段名(必须)
Avg
获取平均值,参数是要统计的字段名(必须)
Sum
获取总分,参数是要统计的字段名(必须)
用法示例:
获取用户的最大积分:
$maxScore = $User->max('score');方法:
$time=strtotime($_POST['dates']);//dates为从文本框获得的日期
$sql='select from think_mytask where strtotime(starttime)<=$time and strtotime(endtime)>=$time';
$admin1=new Model('mytask');
$list=$admin1->query($sql);
一、备份数据库并下载到本地db_backupphp
代码代码如下:
<php
// 设置SQL文件保存文件名
$filename=date("Y-m-d_H-i-s")"-"$cfg_dbname"sql";
// 所保存的文件名
header("Content-disposition:filename="$filename);
header("Content-type:application/octetstream");
header("Pragma:no-cache");
header("Expires:0");
// 获取当前页面文件路径,SQL文件就导出到此文件夹内
$tmpFile = (dirname(__FILE__))"\\"$filename;
// 用MySQLDump命令导出数据库
exec("mysqldump -u$cfg_dbuser -p$cfg_dbpwd --default-character-set=utf8 $cfg_dbname > "$tmpFile);
$file = fopen($tmpFile, "r"); // 打开文件
echo fread($file,filesize($tmpFile));
fclose($file);
exit;
>
二、还原数据库db_restorephp
代码代码如下:
<form id="form1" name="form1" method="post" action="">
数据库SQL文件:<input id="sqlFile" name="sqlFile" type="file" />
<input id="submit" name="submit" type="submit" value="还原" />
</form>
<php
// 我的数据库信息都存放到configphp文件中,所以加载此文件,如果你的不是存放到该文件中,注释此行即可;
require_once((dirname(__FILE__)'///include/configphp'));
if ( isset ( $_POST['sqlFile'] ) )
{
$file_name = $_POST['sqlFile']; //要导入的SQL文件名
$dbhost = $cfg_dbhost; //数据库主机名
$dbuser = $cfg_dbuser; //数据库用户名
$dbpass = $cfg_dbpwd; //数据库密码
$dbname = $cfg_dbname; //数据库名
set_time_limit(0); //设置超时时间为0,表示一直执行。当php在safe mode模式下无效,此时可能会导致导入超时,此时需要分段导入
$fp = @fopen($file_name, "r") or die("不能打开SQL文件 $file_name");//打开文件
mysql_connect($dbhost, $dbuser, $dbpass) or die("不能连接数据库 $dbhost");//连接数据库
mysql_select_db($dbname) or die ("不能打开数据库 $dbname");//打开数据库
echo "<p>正在清空数据库,请稍等<br>";
$result = mysql_query("SHOW tables");
while ($currow=mysql_fetch_array($result))
{
mysql_query("drop TABLE IF EXISTS $currow[0]");
echo "清空数据表"$currow[0]"成功!<br>";
}
echo "<br>恭喜你清理MYSQL成功<br>";
echo "正在执行导入数据库 *** 作<br>";
// 导入数据库的MySQL命令
exec("mysql -u$cfg_dbuser -p$cfg_dbpwd $cfg_dbname < "$file_name);
echo "<br>导入完成!";
mysql_close();
}
>
thinkPHP 查询数据库中id最大的一条数据 *** 作如下:
先给数据库中的这个字段(sort)分组 再降序排列, 取第1条。
通过步骤1 获取了 sort值为最大的数据, 然后在 通过 where sort ='步骤1取的值'。
查询最大ID,select max(id) from table。
查询最大ID的记录 select from table where id = (select max(id) from table)
或者select from table t where not exists (select 1 from table t1 where t1id > tid)
$list=D('QA1')->where($whereS)->limit($first,$pagesize)->order($sort $order)->select();这样试试吧。我记得order里面不是放数组的
如果你的数据库某一个字段(Eg:uid)设置了‘唯一索引’,
在 Thinkphp6 中 用 replace() 添加一条数据 数据库会将原来的数据(uid 相同的数据)先进行删除,再进行添加 *** 作,如果没有加 replace() 方法,在遇到 (uid 相同的数据) 会直接报错,希望可以帮带你。
$news_model->where(array('id',$id))->setInc('view_num');//加1
$news_model->where(array('id',$id))->setInc('view_num',$n);//加$n
以上就是关于thinkPHP 如何查询出数据库中id最大的一条数据全部的内容,包括:thinkPHP 如何查询出数据库中id最大的一条数据、thinkphp中如何通过日期查询数据库、求thinkphp 数据库的备份、还原的脚本等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)