写了一个数据库连接类,大家看看写得怎样
时间:2011-11-18
来源:互联网
我今年19,很爱编程,因为快要工作的原因,我用了一个月的时间去制作了一个新闻及留言板系统当作是自己的个人作品,我也很怕进不了这个行业,所以我一直在努力学习PHP更高级的知识。因为之前学过C++有点面向对象的基础,所以自己写了一个数据库连接的类,还得请教一下各位哪里写得不好或者需要改进,我定会悉心听取大家的意见,其实...我还想多交点朋友,每天在家打开电脑就写代码,那种感觉真的好孤独。好了,不多说,附上代码,请大家多多指点!
PHP code
<? //数据库连接类 class db_conn { public $db_server_name; public $db_name; public $db_pass; public $db_databese; public $link; public $sql; public $result; //构造函数 function __construct($server='localhost',$name='root',$pass='3561176',$database='kenny_site'){ $this->db_server_name = $server; $this->db_name = $name; $this->db_pass = $pass; $this->db_database = $database; //调用函数 $this->connect(); $this->select($database); $this->Set_code(); } //数据库连接 function connect(){ $this->link = mysql_connect($this->db_server_name,$this->db_name,$this->db_pass,$this->db_database) or die("连接 失败"); } //选择数据库 function select($data){ mysql_select_db($data); } //设置字符编码 function Set_code(){ mysql_query("SET NAMES 'UTF8'"); } //查询数据库函数 function query($sql){ //echo $sql; $this->result = mysql_query($sql); } //获取查询值 function fetch(){ $i = 0; $arr = array(); while ( $re = mysql_fetch_array($this->result) ){ $arr[$i] = $re; $i++; }echo mysql_error(); return $arr; } } ?> <? //生成实例 /* $db =new db_conn(); $db->query("select Title,Content from news"); $hello = $db->fetch(); foreach($hello as $name=> $value){ echo $value["Title"].'<br>'; echo $value["Content"].'<br>'; } */ ?>
作者: ykennyy 发布时间: 2011-11-18
作者: binarie 发布时间: 2011-11-18
//指手画脚一下,勿怪 //查询数据库函数 function query($sql){ //echo $sql; $this->result = mysql_query($sql) or die(mysql_error()); } //获取查询值 function fetch(){ // $i = 0; $arr = array(); while ( $re = mysql_fetch_array($this->result) ){ // $arr[$i] = $re; // $i++; $arr[$i] = $re; } return $arr; }
作者: TottyAndBaty 发布时间: 2011-11-18
作者: dream1206 发布时间: 2011-11-18
2、fetch 应更名为 fetchall 即读取全部结果
保留原 fetch 方法名并调整算法 每次读取一条结果
3、query 方法总是用 $this->result 保存 mysql_query 的返回
一旦执行了非 select 指令,将导致 fetch 方法失败
4、使用单一的变量保存结果集资源,将导致该类的对象不能嵌套使用
作者: xuzuning 发布时间: 2011-11-18
这一堆变量,最好设为private,否则你的封装只是为了快速调用方法而己,对变量应该保护好。
$this->link
既然有了link标识,为何 select db,query 时不用呢??
$this->Set_code();
既然有了这个接口,何不允许用户自定义呢??
如楼上所说,
fetch =》 fetchAll 获所有
fetchRow 获取行 //这两个必须有吧
fetchOne 获得第一行,行一个字段,最好有,有时 select count 的时候很好用。
还有获取列之类的,可以有,看需求。。。
如果用户执行了insert,那乍样获取自增id?
所有的方法,缺少 public private 标识符,标准写法,都需要写上
connect , select, setcode 之类的,可以设为private保护。
Set_code() 建议使用驼峰方式 setCode
作者: yangball 发布时间: 2011-11-18
作者: PhpNewnew 发布时间: 2011-11-18
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28