足球比赛-2
程序员文章站
2022-06-30 13:33:56
优化PHP代码,将数据库基本操作封装起来。 1、MySQLDB.class.php类代码如下: 2、前台代码 3、浏览器显示效果 ......
优化php代码,将数据库基本操作封装起来。
1、mysqldb.class.php类代码如下:
<?php //类名习惯上推荐使用与文件名相似的名字 //定义一个mysql连接类,该类可以连接mysql数据库 //并实现其单例模式 //该类的功能还能够完成如下的mysql基本操作 //执行普通的增删改非返回结果集的语句 //执行select语句并返回3种类型的数据 //多行结果(二维数组),单行结果(一维数组) //单行单列(单个数据) class mysqldb{ public $host; public $port; public $username; public $password; public $charset; public $dbname; //连接结果(资源类型) private static $link; //数据库连接结果(资源类型) private $resourc; //获取类的实例 public static function getinstance($config){ if(!isset(self::$link)){ self::$link=new self($config); } return self::$link; } //构造函数:禁止new private function __construct($config){ //初始化数据 $this->host=isset($config['host'])?$config['host']:'localhost'; $this->port=isset($config['port'])?$config['port']:'3306'; //echo '主机名:'.$this->host;(测试使用) $this->username=isset($config['username'])?$config['username']:'root'; $this->password=isset($config['password'])?$config['password']:''; $this->charset=isset($config['charset'])?$config['charset']:'utf8'; $this->dbname=isset($config['dbname'])?$config['dbname']:''; //连接数据库 $this->connect(); //设置连接编码 $this->setcharset($this->charset); //选定数据库 $this->selectdb($this->dbname); } //连接数据库 public function connect(){ $this->resourc=mysql_connect("$this->host:$this->port","$this->username","$this->password") or die("连接数据库失败!"); } //设置连接编码 public function setcharset($charset){ mysql_set_charset($charset,$this->resourc); } //选定数据库 public function selectdb($dbname){ mysql_select_db($dbname,$this->resourc); } //功能:执行最基本的sql语句,成功返回执行结果,否则直接结束 public function query($sql){ if(!$result=mysql_query($sql,$this->resourc)){ echo "<br/>执行失败。"; echo "<br/>失败的sql语句为:".$sql; echo "<br/>出错信息为:".mysql_error(); echo "<br/>出错行号为:".mysql_errno(); die(); } return $result; } //功能:执行select语句,返回二维数组 //参数:$sql字符串类型 select语句 public function getall($sql){ $result=$this->query($sql); $arr=array(); //空数组 while($rec=mysql_fetch_assoc($result)){ $arr[]=$rec; //这样就形成二维数组 } return $arr; } } ?>
2、前台代码
<?php //比赛列表 header("content-type:text/html;charset=utf-8"); //通过数据操作,将比赛列表需要的数据处理 //初始化mysql $config=array( 'host'=>'127.0.0.1', 'port'=>'3306', 'username'=>'root', 'password'=>'123', 'charset'=>'utf8', 'dbname'=>'db_match' ); require "./mysqldb.class.php"; $dao=mysqldb::getinstance($config); //dao,database access object 数据库操作对象(dao层) //echo gettype($dao); //获取比赛列表数据,从前面把sql语句拷贝过来 $sql="select t1.t_name as t1_name,m.t1_score,m.t2_score,t2.t_name as t2_name,m.m_time from `match` m join team t1 on m.t1_id =t1.t_id join team t2 on m.t2_id =t2.t_id"; //$sql="select * from player`"; //var_dump($dao); $match_list=$dao->getall($sql); //获取多行比赛结果,类型为数组 //print_r($match_list); ?> <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>比赛列表</title> </head> <body> <table> <tr> <th>球队一</th><th>比分</th><th>球队二</th><th>比赛时间</th> </tr> <?php foreach($match_list as $row){ ; ?> <tr> <td><?php echo $row['t1_name']; ?></td> <td><?php echo $row['t1_score']; ?>:<?php echo $row['t2_score']; ?></td> <td><?php echo $row['t2_name'];?></td> <td><?php echo date('y-m-d h:i',$row['m_time']);?></td> </tr> <?php };?> </table> </body> </html>
3、浏览器显示效果
推荐阅读
-
如何使用Canopus Procoder 2进行视频压缩?Canopus Procoder 2图文使用教程
-
模仿J2EE的session机制的App后端会话信息管理实例
-
猎豹免费wifi网速慢怎么办?猎豹免费wifi网速慢解决方法2则
-
win8.1平板怎么连接小米电视2无线显示?
-
腾讯大王卡1元能买500MB国内流量(在1月1日-2月28日)
-
开机时需要按F1或F2键后才能继续启动的解决方法汇总
-
突破winxp sp2/win2003 sp2超强弹窗代码
-
为Python的Tornado框架配置使用Jinja2模板引擎的方法
-
SQL SERVER 数据类型详解补充2
-
Python的Flask框架中的Jinja2模板引擎学习教程