2014-04-11 4 views
1

여기에 약간의 문제가 있습니다. 내 PHP 스크립트 AJAX 명령을 통해 데이터를 전달 해요. 데이터는 잘 돌아갑니다.JSON 디코드 및 문자열 문제

에서 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) 
) 

내가 잘 다음과 같은 방법을 사용할 수 있습니다하지만 난 두 번째 옵션을 사용할 때이 오류로 인해 메시지를 좋아하지 않는다 :

잡아낼 치명적인 오류 : 개체 클래스의 stdClass 문자열

방법으로 변환 할 수 없습니다

//Method one 
echo "JobID: " . $comm[0]->JobID; // result: 3 
//Method two 
echo "JobID: '$comm[0]->JobID'"; // get error message 

메신저 방법 2를 사용하는 이유는 내가 정보를 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

그러면 쿼리 문자열을 변환해야합니다. –

답변

1

당신은 같이해야 할 수도 있습니다

$sql .= "UPDATE 
jobs 
SET 
CompletedBy = $tech 
WHERE JobID = '".$comm[$i]->JobID."'"; 
+0

안녕하세요, 필자가 정상적으로 작동하도록 시도했지만 WHERE 절에 문제가 있습니다 (기본 게시물의 쿼리 편집 확인). – Aero204

+0

편집 가능을 확인하십시오. 대답 – Sadikhasan

+0

확인 작동하지만이 메시지가 나타납니다. '오류 : 명령이 동기화되지 않았습니다; 지금이 명령을 실행할 수 없습니다. 내 SQL 다중 쿼리에서? 어떤 대답? – Aero204

2

같은 시도

echo "JobID: '{$comm[0]->JobID}'"; 

쿼리에서 u로 사용할 수 있습니다. where some_col = '{$comm[0]->JobID}'

+0

안녕하세요, "{}"을 사용할 때이 오류가 나타나는 것 같습니다 : '오류 : 명령이 동기화되지 않았습니다. – Aero204

+0

'WHERE JobID = '{$ comm [$ i] -> JobID}'가 올바른 형식이거나 WHERE'JobID = " '. $ comm [$ i] -> JobID"입니다. '또한 쿼리를 삽입하여 올바른 형식인지 확인하십시오. –

1

오류 메시지가 나타나기 때문에 반환을 문자열로 직접 변환 할 수 없습니다.

echo sprintf("JobID: '%s'",$comm[0]->JobID); 

또는

echo "JobID: '{$comm[0]->JobID}'"; 

또는
echo "JobID: '" . $comm[0]->JobID . "'"; 

0

간단한 따옴표이 같은 복잡한 조합을 보간하지 않습니다 트릭을해야한다. 이를 위해 중괄호를 사용해야합니다 (예 : echo "JobID: {$comm[0]->JobID}";.

그러나 printf도 사용할 수 있습니다. printf("JobID: %s", $comm[0]->JobID);.