这里有点问题。我通过AJAX命令将数据传递给我的php脚本。数据传播得很好。
打印
Array
( [0] => stdClass Object
( [Loc] => Main Door
[Module] => O2
[Dect] => O2
[GasDec] => O2
[ScB4] =>
[ScA4] =>
[A1] =>
[A2] =>
[CalGas] =>
[CalGasA] =>
[Factor] =>
[ZB4] =>
[ZA4] =>
[CalB4] =>
[CalA4] =>
[CHNoID] => 5
[JobID] => 3 )
)
我可以使用以下方法,但当我使用选项二时,由于这个错误消息,它不喜欢它:
可捕获的致命错误:类stdClass的对象无法转换为字符串
方法
//Method one
echo "JobID: " . $comm[0]->JobID; // result: 3
//Method two
echo "JobID: '$comm[0]->JobID'"; // get error message
我使用方法二的原因是为了将信息传递到mysql中。如果有人知道我错过了什么,或者无法完成,甚至无法找到更简单的方法。请说。
谢谢。
编辑
查询
$sql = "INSERT INTO
calinfo (Sbefore, Safter, A1, A2, CalGas, Factor, Zbefore, Zafter, Cbefore, Cafter, SysInfoID)
VALUES
('$comm[$i]->ScB4', '$comm[$i]->ScA4', '$comm[$i]->A1', '$comm[$i]->A2', '$comm[$i]->CalGasA', '$comm[$i]->Factor', '$comm[$i]->ZB4', '$comm[$i]->ZA4', '$comm[$i]->CalB4', '$comm[$i]->CalA4', '$comm[$i]->CHNoID');";
$sql .= "UPDATE
jobs
SET
CompletedBy = $tech
WHERE JobID = '$comm[$i]->JobID';"; //<-- when i try the method of "WHERE JobID = ".$comm[$i]->JobID.";"; it doesnt like it...
您可能需要作为
echo "JobID: '{$comm[0]->JobID}'";
因此,在查询中,u可以将其用作where some_col = '{$comm[0]->JobID}'
像这样尝试
$sql .= "UPDATE
jobs
SET
CompletedBy = $tech
WHERE JobID = '".$comm[$i]->JobID."'";
正如错误消息所说,返回不能直接转换为字符串。
echo sprintf( "JobID: '%s'",$comm[0]->JobID);
或
echo "JobID: '{$comm[0]->JobID}'";
或
echo "JobID: '" . $comm[0]->JobID . "'";
应该完成
简单的双引号不会插入这样的复杂组合。您需要使用大括号来实现这一点,例如echo "JobID: {$comm[0]->JobID}";
。
但是,您也可以使用printf
,例如printf("JobID: %s", $comm[0]->JobID);
。