作为类函数一部分的SQL查询中的PHP变量未按预期工作
我试图从SQL数据库中提取与输入年份和月份匹配的数据。下面是SQL查询的代码作为类函数一部分的SQL查询中的PHP变量未按预期工作,php,mysqli,Php,Mysqli,我试图从SQL数据库中提取与输入年份和月份匹配的数据。下面是SQL查询的代码 <?php class SelectAMonthGet extends ConnectDB { var $year; var $month ; function __construct($n){ $this->year = $_POST['year']; $this->month = $_POST['Ana
<?php
class SelectAMonthGet extends ConnectDB {
var $year;
var $month ;
function __construct($n){
$this->year = $_POST['year'];
$this->month = $_POST['AnalyzeEnterAreaMonth'];
}
function SelectAMonthGetData(){
$sql = "SELECT * FROM wp_myexpenses WHERE YEAR(date) = '$year' AND MONTH(date) = '$month' order by date,id";
$result = $this->connect()->query($sql);
$numRows = $result->num_rows;
if($numRows > 0) {
while ($row = $result->fetch_assoc()){
$data[] = $row;
}
return $data;
}
}
}
?>
代码运行良好。当我提到变量时,我不知道为什么代码不起作用。有人能在这里指导我吗?在您的代码中,
$year
和$month
被声明为类变量,因此您可以使用$this->
访问它们(请参阅构造函数)
但是在查询中的函数SelectAMonthGetData
中,您使用它们时没有this
,因此无法访问它们。要解决此问题,您可以使用:
$sql = "SELECT * FROM wp_myexpenses WHERE YEAR(date) = '$this->year' AND MONTH(date) = '$this->month' order by date,id";
或
您应该使用年和月作为$this->year aτd this->month的可能副本查看副本<代码>$year和
$month
是构造函数的本地代码。您需要将它们声明为类变量,并使用@splash58所说的$this->year
。year$year和$month是局部变量。在执行查询之前,首先给它们赋值。请共享var\u dump($sql)的输出代码>将此代码放在查询行字符串(87)“选择*自wp_myexpenses,其中年(日期)=''和月(日期)=''按日期排序,id“您的查询是什么?你是否按照我在帖子中的建议更新了它们?你的帖子是否真的得到了值,var\u dump($\u POST)的输出是什么代码>将此代码放入构造函数。数组(2){[“操作”]=>string(18)“分析数据摘要”[“分析选项”]=>string(14)“选择一个月”}看起来我这里有问题
$sql = "SELECT * FROM wp_myexpenses WHERE YEAR(date) = '$this->year' AND MONTH(date) = '$this->month' order by date,id";
$year = $this->year; $month = $this->month;
$sql = "SELECT * FROM wp_myexpenses WHERE YEAR(date) = '$year' AND MONTH(date) = '$month' order by date,id";