ホームページ >バックエンド開発 >PHPチュートリアル >创建类的方法来连接数据库,大家来看看。解决办法
创建类的方法来连接数据库,大家来看看。
代码一mysql.class.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
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 "
";
}
?>在代码二中,我发现了问题,创建一个对象,但是创建对象怎么不需要用调用fuction SqlTooL来连接数据库
------解决方案--------------------
SqlTool类的SqlTool方法是它的构造函数。
摘自手册上的说明:
为了实现向后兼容性,如果 PHP 5 在类中找不到 __construct() 函数,它就会尝试寻找旧式的构造函数,也就是和类同名的函数。
可见,这个类并不咋滴,老掉牙了
http://php.net/manual/zh/language.oop5.decon.php