菜鸟求问现在要把数据库包装下函数但是每个函数里都要声明全局变量才行global$mysqli;该怎么写法才好function_connect(){//MYSQL服务器连接global$mysqli;$mysqli=@newmysqli('localhost','root','root','ken123');if($mysqli->connect_error){die('ConnectError:'.$mysqli->connect_error);}if(!$mysqli->set_charset("utf8")){exit('字符集不存在!');};}function_query($_sql){//执行SQL语句global$mysqli;if(!$result=$mysqli->query($_sql)){exit('SQL执行失败!');};return$result;}
2 回答
翻翻过去那场雪
TA贡献2065条经验 获得超14个赞
phpclassmysqli{private$mysqli;function__construct(){$this->mysqli=@newmysqli('localhost','root','root','ken123');if($this->mysqli->connect_error){die('ConnectError:'.$this->mysqli->connect_error);}if(!$this->mysqli->set_charset("utf8")){exit('字符集不存在!');};}function_query($_sql){//执行SQL语句if(!$result=$this->mysqli->query($_sql)){exit('SQL执行失败!');};return$result;}}
qq_遁去的一_1
TA贡献1725条经验 获得超8个赞
$mysqli=newmysqli();functioncrud(){global$mysqli;}register_shutdown_function(function(){global$mysqli;$mysqli->close();});很多人都觉得全局变量没有OOP的依赖注入那么优雅,但优雅能当饭吃吗?为了优雅,是不是连PHP提供的超全局变量也不用了?简单直观才是PHP的王道.依赖注入是一种解耦组件之间依赖关系的设计模式,可以用来替代全局变量.classFactory{publicstaticfunctiongetDb(){include"./Lib/Db.php";returnnewDb("localhost","root","123456","test");}}classexample{private$_db;functiongetList(){$this->_db->query("...");}functionsetDb($connection){$this->_db=$connection;}}$example=newexample();//example类依赖数据库$example->setDb(Factory::getDb());//从外部注入数据库连接(依赖注入)$example->getList();//访问数据库,读取数据
添加回答
举报
0/150
提交
取消
