JSON解码和问题的问题字符串

时间:2014-04-11 06:49:04

标签: php mysql json

这里有点问题。我通过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...

4 个答案:

答案 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);