此段代码是个人项目application/module/User.class.php login方法里的一段代码(在网上看到很多人用Zend Framework开发时将数据库逻辑处理放在了Controller的Action里,个人感觉如果这么使用的话虽然能行的通,但是对用框架并没有最基本的理解,因为Zend Framework的Controller与struts里的Controller一样,都只是付责请求数据的收集与分发,如果将数据库的逻辑处理放到 Controller的Action里也就没有了真正的MVC的用法,所以建议使用zend Framework的开发者一定要将数据库的处理逻辑放在application/mobile/目录下的类里).
$sql = "update ".$this->_db_config->database_prefix->table_prefix."member_info set lastloginip = '".$_SERVER['REMOTE_ADDR']."', lastlogintime = ".(int)$lastLoginTime.", logintimes = logintimes + 1 where userid = ".$result[0]['userid'];
$rownum = $this->_dbAdapter->query($sql)->rowCount();
if ((int)$rownum !== 1) {
return false;
}
$sql = "select count(sessionid) as num, sessionid from ".$this->_db_config->database_prefix->table_prefix."session where userid = ".(int)$result[0]['userid'];
$result_session = $this->_dbAdapter->fetchAll($sql);
if ((int)$result_session[0]['num'] >= 1) {
$sql = "delete from ".$this->_db_config->database_prefix->table_prefix."session where sessionid = '".$result_session[0]['sessionid']."' and userid = ".(int)$result[0]['userid'];
$rownum = $this->_dbAdapter->query($sql)->rowCount();
if ((int)$rownum === 0) {
unset($sql);
unset($rownum);
return false;
}
}
$sql = "insert into ".$this->_db_config->database_prefix->table_prefix."session values ('".md5($username)."', ".(int)$result[0]['userid'].", '".$_SERVER['REMOTE_ADDR']."', ".$lastLoginTime.", ".(int)$result[0]['groupid'].", 'phpcms', 0, 0, '')";
$rownum = $this->_dbAdapter->query($sql)->rowCount();
if ((int)$rownum === 0) {
unset($sql);
unset($rownum);
return false;
}