如何连接到函数内部的数据库。。。我现在做的是:
基本连接到数据库:
$conn = mysqli_connect('localhost', 'root', '', 'foo');
if (mysqli_connect_errno()) {
printf("Connect failed: %s'n", mysqli_connect_error());
exit();
}
功能:
在编写函数时,我必须在中再次包含连接查询
function cleanup($str, $real) {
if(get_magic_quotes_gpc() == true){
$str = stripslashes($str);
}
$str = htmlspecialchars($str);
if($real == true) {
// connection query here again
$conn = mysqli_connect('localhost', 'root', '', 'foo');
$str = mysqli_real_escape_string($conn,$str);
}
return $str;
}
这对我来说似乎很傻,因为我必须添加主机、用户和传递两次详细信息,我希望基本连接能以某种方式同时处理
这是因为作用域。在函数内部时,您不会自动访问全局范围中定义的变量。您可以将变量"导入"到函数的本地作用域中,如下所示:
function cleanup($str, $real) {
global $conn;
if(get_magic_quotes_gpc() == true) {
$str = stripslashes($str);
}
$str = htmlspecialchars($str);
if($real == true) {
$str = mysqli_real_escape_string($conn,$str);
}
return $str;
}
global $conn = mysqli_connect('localhost', 'root', '', 'foo');
使数据库的$conn实例全局化,然后任何代码都可以使用它。
if($real == true) {
global $conn;
$str = mysqli_real_escape_string($conn,$str);
}
return $str;
}