这里有点问题。我通过AJAX命令将数据传递给我的php脚本。数据传输正常。
的print_r
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 )
)
我可以使用以下方法就好了,但是当我使用选项2时,由于此错误消息,它不喜欢它:
捕获致命错误:类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...
答案 0 :(得分:2)
您可能需要执行
echo "JobID: '{$comm[0]->JobID}'";
因此,在查询中,您可以将其用作where some_col = '{$comm[0]->JobID}'
答案 1 :(得分:1)
试试这个
$sql .= "UPDATE
jobs
SET
CompletedBy = $tech
WHERE JobID = '".$comm[$i]->JobID."'";
答案 2 :(得分:1)
当错误消息出现时,无法将返回转换为直接适合字符串。
echo sprintf( "JobID: '%s'",$comm[0]->JobID);
或
echo "JobID: '{$comm[0]->JobID}'";
或
echo "JobID: '" . $comm[0]->JobID . "'";
应该做的伎俩
答案 3 :(得分:0)
简单的双引号不会像这样插入复杂的组合。你需要使用花括号来实现这一点,例如: echo "JobID: {$comm[0]->JobID}";
。
您也可以使用printf
,例如printf("JobID: %s", $comm[0]->JobID);
。