-2

使用一种方法 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的内容,包括包含$conn对象和getUserName.php的connection.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

任何想法?为什么我会收到错误消息?任何帮助,将不胜感激。提前致谢。

4

2 回答 2

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));
        }       
    }  
}
?>
于 2013-03-16T23:59:25.690 回答
1

$conn未在 的本地范围内定义getfield($field)。您需要将其作为参数发送:

$fname=getfield($conn, 'Fname');
$lname=getfield($conn, 'Lname');

function getfield($conn, $field) {
    ...
于 2013-03-16T23:55:00.417 回答