PHP:Can';使用php变量时,无法获取数组

PHP:Can';使用php变量时,无法获取数组,php,Php,我试图从MySQL数据库中获取数组,但当使用php变量($final_date)而不是字符串(2015-02-16)时,我无法获取数组。有人能帮我吗 代码如下: $date = new DateTime(date("Y-m-d")); $date->modify('-1 day'); $prev_date = $date->format('Y-m-d'); $final_date = (string)$prev_date; function GetPrevUsers(){

我试图从MySQL数据库中获取数组,但当使用php变量($final_date)而不是字符串(2015-02-16)时,我无法获取数组。有人能帮我吗

代码如下:

$date = new DateTime(date("Y-m-d"));
$date->modify('-1 day');
$prev_date = $date->format('Y-m-d');
$final_date = (string)$prev_date;

function GetPrevUsers(){
    $Adname = "Error";
    $query = mysql_query("SELECT users FROM stats WHERE date = '".$final_date."'");
    while($row = mysql_fetch_array($query)){
        $Adname  = $row['users'];
    }
    return $Adname ;
}

echo GetPrevUsers();
出于某种原因,当我使用实际日期而不是php变量时,函数会工作,如下所示:

$query = mysql_query("SELECT users FROM stats WHERE date = '2015-02-16'");

它不工作,因为范围不同;您尝试从函数中访问变量。您可以将变量传递给函数[例如:
函数GetPrevUsers($final_date){yourCode}
],或者将变量
$final_date
添加到
$GLOBALS
数组中


第一种方法通常是首选方法;只有在确实需要时才将变量添加到
$GLOBALS
数组。

$final\u date
保留为全局变量,检查函数:

function GetPrevUsers(){
    global $final_date;
    $Adname = "Error";
    $query = mysql_query("SELECT users FROM stats WHERE date = '".$final_date."'");
    while($row = mysql_fetch_array($query)){
        $Adname  = $row['users'];
    }
    return $Adname ;
}

尝试回显您的查询以确保其正确。另外,最好使用
GetPrevUsers()
函数将
$final_date
作为参数发送。查询是正确的,但正如您所说,我必须将$final_date作为参数发送。谢谢解决了的!非常感谢!过了期限,我会把你的答案记为正确的。