日期:2014-05-17  浏览次数:20567 次

创建类的方法来连接数据库,大家来看看。
代码一mysql.class.php
<?php

 class SqlTool {
 private $conn;
 private $host="127.0.0.1";
 private $user="root";
 private $password="5200";
 private $db="test";

function SqlTool(){
 $this->conn=mysql_connect($this->host,$this->user,$this->password);
 if(!$this->conn){
  die("连接数据库失败".mysql_error());
 }
 mysql_select_db($this->db,$this->conn);
 mysql_query("set names utf8");
 }
//完成select
function execute_dql($sql){

$res=mysql_query($sql);
return $res;

}
//完成update
function execute_dml($sql){
   
$b=mysql_query($sql,$this->conn);

if(!$b){
  return 0;//失败
}else {
  if(mysql_affected_rows($this->conn)>0){

return 1;//表示陈功
}else {
return 2;//没有影响到行数
}
}

}

}


?>






代码二mysql.php

<?php

header("content-type:text/html;charset=utf-8");

require_once "SqlTool.class.php";

$sql="select * from user1";
$sqlTool=new SqlTool();
//创建对象怎么不需要用调用fuction SqlTooL来连接数据库
$res=$sqlTool->execute_dql($sql);//直接调用execute_dql就可以操作数据库了?
while ($row=mysql_fetch_row($res)){
 foreach($row as $key=>$val){
  echo "--$val";
 }
 echo "<br/>";
}




?>在代码二中,我发现了问题,创建一个对象,但是创建对象怎么不需要用调用fuction SqlTooL来连接数据库


------解决方案--------------------
SqlTool类的SqlTool方法是它的构造函数。
摘自手册上的说明:
为了实现向后兼容性,如果 PHP 5 在类中找不到 __construct() 函数,它就会尝试寻找旧式的构造函数,也就是和类同名的函数。
可见,这个类并不咋滴,老掉牙了
http://php.net/manual/zh/language.oop5.decon.php