为了账号安全,请及时绑定邮箱和手机立即绑定

菜鸟mysqli问题

菜鸟mysqli问题

梦里花落0921 2019-04-13 08:36:52
菜鸟求问现在要把数据库包装下函数但是每个函数里都要声明全局变量才行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;
}
}
                            
查看完整回答
反对 回复 2019-04-13
?
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();//访问数据库,读取数据
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 541 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号