我有一个普通的php文件,我的主程序代码在它下面的几个函数之上。我只在顶部包含了我的连接文件一次。我下面的一些自定义函数有查询,这些函数在上面的程序中调用。有些事情我不明白: 如果我没有在函数中包含我的连接文件,那么函数中的查询将无法正常工作,如果我这样做的话。那么为什么我需要在每个函数中包含我的连接文件?
我在下面解释:
这不起作用抛出boolean mysqli_fetch和查询错误,即使我在函数外部的文件中连接了上面。为什么不起作用?
function queryProfileInfo($iduser){
$iduser=$_SESSION['logged_in']['iduser'];
$query ="SELECT fnlname, username, gender, email, emailconfirmed, bio, avatar, followercount, followingcount, privatepublic FROM profile Where iduser='$iduser' ";
$response=mysqli_query($dbc, $query);
while($row =mysqli_fetch_array($response)){
$username= $row['username'];
}
}
/ *下一个示例有效,但会抛出以下错误,因为我已经在文件
中连接了上面的内容注意:常量DB_USER已在第8行的C:\ xampp \ htdocs \ theproject \ connect.php中定义
注意:在第9行的C:\ xampp \ htdocs \ theproject \ connect.php中已经定义了常量DB_PASSWORD
注意:常量DB_HOST已在第10行的C:\ xampp \ htdocs \ theproject \ connect.php中定义
注意:常量DB_NAME已在第11行的C:\ xampp \ htdocs \ theproject \ connect.php中定义
* /
function queryProfileInfo($iduser){
include('connect.php');
$iduser=$_SESSION['logged_in']['iduser'];
$query ="SELECT fnlname, username, gender, email, emailconfirmed, bio, avatar, followercount, followingcount, privatepublic FROM profile Where iduser='$iduser' ";
$response=mysqli_query($dbc, $query);
while($row =mysqli_fetch_array($response)){
$username= $row['username'];
}
}
答案 0 :(得分:0)
您需要将变量$dbc
传递给使用它的每个函数,或者通过在每个函数中编写global $dbc;
来声明您正在使用全局变量。建议不要使用后一种解决方案,因为稍后您可能希望拥有多个数据库连接。
请参阅本手册页: http://php.net/manual/en/language.variables.scope.php