mysql中查询重复的记录
SELECT username, COUNT(*) AS COUNT FROM honghai_user GROUP BY username HAVING COUNT>1;
mysql中查询重复的记录
SELECT username, COUNT(*) AS COUNT FROM honghai_user GROUP BY username HAVING COUNT>1;
1、把PHPMailer.class.php, pop3.class.php, smtp.class.php三个文件放入ThinkPHP\Library\Vendor\PHPMailer目录下
2、项目目录下,Common文件夹里建立functions.php, 写入下面代码:
<?php
function SendMail($address,$title,$message)
{
import('Vendor.PHPMailer.PHPMailer');
$mail=new PHPMailer();
$mail->PluginDir=THINK_PATH . 'Library/Vendor/PHPMailer/';
// 设置PHPMailer使用SMTP服务器发送Email
$mail->IsSMTP();
$mail->Port = 25;
// 设置邮件的字符编码,若不指定,则为'UTF-8'
$mail->CharSet='UTF-8';
// 添加收件人地址,可以多次使用来添加多个收件人
$mail->AddAddress($address);
// 设置邮件正文
$mail->Body=$message;
// 设置邮件头的From字段。
$mail->From=C('MAIL_ADDRESS');
// 设置发件人名字
$mail->FromName='inrn';
// 设置邮件标题
$mail->Subject=$title;
// 设置SMTP服务器。
$mail->Host=C('MAIL_SMTP');
// 以html方式发送
//$mail->IsHTML(true);
// 设置为"需要验证"
$mail->SMTPAuth=true;
// 设置用户名和密码。
$mail->Username=C('MAIL_LOGINNAME');
$mail->Password=C('MAIL_PASSWORD');
// 发送邮件。
return($mail->Send());
}
?>
3、项目配置文件夹(Conf)下config.php里写入:
<?php
return array(
//'配置项'=>'配置值'
'MAIL_ADDRESS'=>'1000@inrn.cn', // 邮箱地址
'MAIL_SMTP'=>'smtp.inrn.cn', // 邮箱SMTP服务器
'MAIL_LOGINNAME'=>'1000@inrn.cn', // 邮箱登录帐号
'MAIL_PASSWORD'=>'521a3344', // 邮箱密码
);
注意:MAIL_LOGINNAME
一定要写成和邮箱地址一样的。 否则会出错(Could not authenticate.)
4、在Action中使用下面代码发送邮件:
SendMail($email,"邮件标题","邮件正文");
MYSQL 生成时间戳函数
UNIX_TIMESTAMP()
PHP优化var_dump输出
/**
* 浏览器友好的变量输出
* @param mixed $var 变量
* @param boolean $echo 是否输出 默认为True 如果为false 则返回输出字符串
* @param string $label 标签 默认为空
* @param boolean $strict 是否严谨 默认为true
* @return void|string
*/
function dump($var, $echo=true, $label=null, $strict=true) {
$label = ($label === null) ? '' : rtrim($label) . ' ';
if (!$strict) {
if (ini_get('html_errors')) {
$output = print_r($var, true);
$output = '<pre>' . $label . htmlspecialchars($output, ENT_QUOTES) . '</pre>';
} else {
$output = $label . print_r($var, true);
}
} else {
ob_start();
var_dump($var);
$output = ob_get_clean();
if (!extension_loaded('xdebug')) {
$output = preg_replace('/\]\=\>\n(\s+)/m', '] => ', $output);
$output = '<pre>' . $label . htmlspecialchars($output, ENT_QUOTES) . '</pre>';
}
}
if ($echo) {
echo($output);
return null;
}else
return $output;
}
PHP获取页面中的所有链接
/*
*PHP获取页面中的所有链接
*/
function getPageLink($url)
{
set_time_limit(0);
$html=file_get_contents($url);
if (!$html) {
return false;
}
preg_match_all("/<a(s*[^>]+s*)href=([\"|']?)([^\"'>\s]+)([\"|']?)/ies",$html,$out);
$arrLink=$out[3];
$arrUrl=parse_url($url);
$dir='';
if(isset($arrUrl['path'])&&!empty($arrUrl['path'])){
$dir=str_replace("\\","/",$dir=dirname($arrUrl['path']));
if($dir=="/"){
$dir="";
}
}
if(is_array($arrLink)&&count($arrLink)>0){
$arrLink=array_unique($arrLink);
foreach($arrLink as $key=>$val){
$val=strtolower($val);
if(preg_match('/^#*$/isU',$val)){
unset($arrLink[$key]);
}elseif(preg_match('/^\//isU',$val)){
$arrLink[$key]='http://'.$arrUrl['host'].$val;
}elseif(preg_match('/^javascript/isU',$val)){
unset($arrLink[$key]);
}elseif(preg_match('/^mailto:/isU',$val)){
unset($arrLink[$key]);
}elseif(!preg_match('/^\//isU',$val)&&strpos($val,'http://')===FALSE){
$arrLink[$key]='http://'.$arrUrl['host'].$dir.'/'.$val;
}
}
}
sort($arrLink);
return $arrLink;
}
在asp.net mvc的razor视图中本来想输出09/15这种日期格式,写的代码:@item.PostDate.ToString( "MM/dd")
但却发现生成的是 09-15这种。原来,.NET会自作聪明的以本机系统的时间格式来生成。
改为如下方式后输出正确:
@item.PostDate.ToString( "MM/dd", System.Globalization.DateTimeFormatInfo .InvariantInfo)
//System.Globalization.DateTimeFormatInfo.InvariantInfo 表示忽略系统时间格式,显示自定时间格式
另:也可以显示指定日期格式:
System.Globalization. DateTimeFormatInfo dtFormat = new System.Globalization.DateTimeFormatInfo ();
dtFormat.ShortDatePattern = "yyyy/MM/dd";
@item.PostDate.ToString("MM/dd", dtFormat)
以前的结论是对的,webform+dapper很强大,可以使用动态实体。而不用去手写model类。
而且切换数据库是非常的方便,操作性、灵活性非常强大,同时性能仅次于ado.net。
坑爹的EF/ASP.NET MVC,不用了。
实用为王!
2024.11.25:胡言乱语,切勿当真。
实用,快速输出产品为目的,出不了产品的情况下,所有模式、设计、优化都是耍流氓。
利用现有的基础技术, sql + 编程语言,快速完成开发。而不是去研究在这些基础技术之上延伸出来的各种技术,比如EF等,有研究EF的功夫,实现或优化几个业务逻辑多好。
现在才明白,那些简单的,花时间少就能掌握的技术才是好技术。复杂的技术不适合做复杂的产品,同样,简单的产品也用不上复杂的技术。这己经被多次印证,解决一个问题,如果觉得复杂了,那么肯定思路错了!
MVC+EF我现在觉得比较操蛋,更操蛋的是博客园上天天讨论的DDD领域模型。
要用.NET就用WebForm+Dapper
否则就用PHP+Yii
至少现在对于我来说是适用的,有团队的情况下再说!
断网,保持自己的思考能力!决不能过分依赖网络!
解决问题的思路应该是:自己思考->查专业资料(MSDN等)->利用搜索引擎查->论坛发帖子(绝对不要QQ群,现在QQ群已经没人回答问题)-> 问现实中的人。
现在不要想盗版正版的问题,我特么中毒太深,产品都没出来,意淫的太多了!!!!!
保持现实,保持冷静,保持思考力!适应自己的才是最好的,其他都扯淡!
code first 常用命令
Enable-Migrations -EnableAutomaticMigrations -Force //code first启用迁移,并允许自动迁移
Enable-Migrations
第一次开启迁移时执行
添加迁移
add-Migration xxx
update-database //更新数据库
MSDN说明见这里: http://msdn.microsoft.com/en-us/library/dn579398.aspx
该松耦合的时候松耦合
该紧耦合的时候紧耦合
没有绝对的好和坏。
现在才发现webform非常好,页面相关的,紧耦合(微软已经给做好了)。
业务方面松耦合,可以灵活变更,以免造成牵一发而动全身的情况。
而MVC正好相反了,页面拆成3份view+model+controller. 业务方面正好偏向是紧耦合的。
controller层不可能写过去复杂的业务逻辑。业务逻辑都要另分离出一层。
不好。
MVC的好处是:在技术层面上,把前端、程序员的职责分开了。
现在都是我自己搞,分开始在是没必要。
如果有团队,分开是非常好的。各专其业。