-2

getFieldメソッドが1つある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));
        }       
}  
?>

$ connオブジェクトとgetUserName.phpを保持するconnection.phpを含むindex.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($field)。あなたはそれをパラメータとして送る必要があります:

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

function getfield($conn, $field) {
    ...
于 2013-03-16T23:55:00.417 に答える
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 に答える