我有一个从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-> name对应于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/13nufXY由于某种原因1-9重复但是那些工作它是一次不重复不工作
答案 0 :(得分:0)
你能发布课程代码'?也许某处变量被其他类对象替换。