我有一个从ODBC连接获取数据的函数
public function SageData() {
$conn = odbc_connect('Data hub', '', '');
if (!$conn) {
exit("Connection Failed: " . $conn);
}
$sql = "SELECT [SHOP FLOOR PRODUCTION PLAN].[MACHINE], [SHOP FLOOR PRODUCTION PLAN].[cycletime]
FROM [SHOP FLOOR PRODUCTION PLAN]
WHERE ((([SHOP FLOOR PRODUCTION PLAN].[MACHINE])='$this->name'));
";
$rs = odbc_exec($conn, $sql);
if (!$rs) {
exit("Error in SQL");
}
while (odbc_fetch_row($rs)) {
$this->SageCycle = odbc_result($rs, "cycletime");
}
// var_dump($this->SageCycle);
odbc_close($conn);
return $this->SageCycle;
}
该函数是类的一部分,下面是在类中创建新对象的代码,在函数中$ This ->名称对应于ZW01001等数字
Machinecycle("ZW01001", "ZW01001Percent", 0);
Machinecycle("ZW01004", "ZW01004Percent", 1);
Machinecycle("ZW01005", "ZW01005Percent", 2);
函数由类中的另一个函数调用,以将数据转换为我可以使用的百分比,见下文
public function GetM() {
$q = $this->Cycle();
$qq = $this->SageData();
$this->M = $q - $qq;
// $this->P = $this->M / $this->sageData();
if ($qq == 0) {
$this->P = 0;
} else {
$this->P = $this->M / $this->sageData();
}
return round($this->P, 2);
}
GetM输出的值被放入数组中,我的问题是,当我运行这个时,我得到了14个对象中的前7个对象的数据,其余对象的错误
Notice: Undefined property: machine::$Cycletime in C:'Somepath'Datatest.php on line 104
第104行是这部分
return round($this->Cycletime, 2);
我不明白的是为什么它在前7之后这样做,而在其余数据上失败
来澄清有14个类的实例,它在前7个实例中工作,然后在它们之后停止。
这是整个类的机器,这是一个真正的混乱,但这里是www.pastebin.com/LMk2gvWG这可能有助于调试当我回显Sql时,我得到这个pastebin.com/13nufXYt出于某种原因,1-9是重复的,但那些是工作的它是一次,不重复,不工作
你能贴一下machine类的代码吗?