您好,我有一个从ODBC连接获取数据的函数
public function SageData() {
$this->Arr = array();
$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->Cycletime = odbc_result($rs, "cycletime");
}
odbc_close($conn);
return round($this->Cycletime, 2);
}此函数是类的一部分下面是在类中创建新对象的代码,在函数中,$ 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个数据之后执行此操作,而在其他数据上失败
发布于 2014-07-16 21:34:49
好吧,让我们先说明一下显而易见的,在这一点上
return round($this->Cycletime, 2);$this->Cycletime在它发送垃圾邮件错误的地方似乎是未定义的。
接下来,我看到这个Cycletime是从您的odbc连接接收的。
$this->Cycletime = odbc_result($rs, "cycletime");你有没有检查过它是一直都在设置的?因为看起来查询根本没有返回数据。因此,为了修复它,请确保您的查询执行了它应该执行的操作,并传递了Cycletime。
https://stackoverflow.com/questions/24782118
复制相似问题