带有一个方法getField的 getUserName.php 文件的内容:
<?php
function getfield($field)
{
if(isset($_SESSION['user_id']) && !empty($_SESSION['user_id']))
{
$query="SELECT `$field` FROM `user` WHERE `id`='".$_SESSION['user_id']."'";
if($query_run=mysqli_query($conn,$query))
{
if($query_result=mysqli_fetch_field($query_run))
{
return $query_result;
}
} else {
printf("error: %s\n", mysqli_error($conn));
}
}
?>
index.php 的内容,其中包含 connection.php ,其中包含 $ conn 对象&amp; getUserName.php :
<?php
include_once('connection.php');
include_once('function.php');
$fname=getfield('Fname');
$lname=getfield('Lname');
echo $name=$fname.' '.$lname;
?>
执行后,我收到如下错误消息:
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /home/confessi/public_html/college/profile/function.php on line 8
有什么想法吗?为什么我收到错误?任何帮助,将不胜感激。提前谢谢。
答案 0 :(得分:1)
$conn
未在getfield($field)
的本地范围内定义。你需要以参数形式发送它:
$fname=getfield($conn, 'Fname');
$lname=getfield($conn, 'Lname');
function getfield($conn, $field) {
...
答案 1 :(得分:1)
$conn
函数范围内无法使用变量getfield
。
在函数内声明全局应该可以解决问题:
<?php
function getfield($field)
{
global $conn;
if(isset($_SESSION['user_id']) && !empty($_SESSION['user_id']))
{
$query="SELECT `$field` FROM `user` WHERE `id`='".$_SESSION['user_id']."'";
if($query_run=mysqli_query($conn,$query))
{
if($query_result=mysqli_fetch_field($query_run))
{
return $query_result;
}
}
else
{
printf("error: %s\n", mysqli_error($conn));
}
}
}
?>