是否可以安全地在函数中使用Mysqli_connect链接作为GLOBALS,如下例所示?我可以用这种方式遇到什么问题?
function dbconnect(){
$link = mysqli_connect($db['host'], $db['user'], $db['pass']);
mysqli_select_db($link, $db['db']);
return $link;
}
function something_query($sql){
return mysqli_query($GLOBALS['conn'], $sql);
}
$conn = dbconnect();
$newsql = 'select * from table where 1';
something_query($newsql);
编辑1:$ conn是整个代码上的唯一字符串,在查询中不用作参数
答案 0 :(得分:0)
是的,它是保存(因为它没有安全风险)。
虽然它不是最好的设计。依赖注入通常优先于全局变量,因为它使您有机会只测试代码的一小部分,并模拟该测试不需要的其余部分,并且它增加了代码的可重用性(您可以采取一个类/函数,并在不同的项目中使用它,而无需读取所有代码并检查全局中需要存在哪些值。