在 GLOBALS 函数中使用 Mysqli_connect link 安全吗?

is it safely to use Mysqli_connect link in a function as GLOBALS?

像下面的例子那样在 GLOBALS 函数中使用 Mysqli_connect link 是否安全?这种方式可能会遇到什么问题?

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 是整个代码中的唯一字符串,它不用作查询中的参数

是的,它很安全(也就是说,它没有安全风险)。

虽然这不是最好的设计。依赖注入通常优于全局变量,因为它让您有机会只测试一小部分代码,并模拟该测试不需要的其余部分,并且它增加了代码的可重用性(您可以只使用a class/function 并在不同的项目中使用它,无需阅读所有代码并检查全局中需要存在的值)。