2012-07-20 3 views
1

동일한 스크립트가 다른 페이지에서 작동하고 같은 페이지의 다른 쿼리가 동일한 연결 문자열을 사용하고 있습니다. 어떤 이유로 '채워진'조건을 실행하면 연결 문자열이 null입니다. "mysql_query()는 매개 변수 2가 리소스, null이 주어진 것으로 기대합니다 ..."그러나 "filled2"조건을 실행하면 정상적으로 실행됩니다. 아무도 내가 뭘 볼 수 있습니까?PHP mySQL 쿼리 프로세스 배열 루프

if (isset($_POST['filled'])) { 

    function updateRecords($varA,$varB,$varC){ 
     $updateMyTable = "UPDATE myTable SET colA='$varA', colB=$varB WHERE colC = $varC"; 
     if (!mysql_query($updateMyTable,$con)) { 
      die('Error 1: '. mysql_error()); 
     } 
    } 

    if (isset($_POST['inputArray'])) { 
     foreach ($_POST['inputArray'] as $lilVars) { 
      updateRecords($lilVars['inputA'],$lilVars['inputB'],$lilVars['inputC']); 
     } 
    } 

} elseif (isset($_POST['filled2'])) { 

    $sqlAddRecord="INSERT INTO myTable (ColX, ColY, ColZ2) VALUES ($VarX,'$VarY',$VarZ)"; 
    if (!mysql_query($sqlAddRecord,$con)) { 
     die('Error 2: '.mysql_error()); 
    } 

    echo "New Record Added"; 

} 
+0

아마도 '$ 레코드'는'updateRecords'의 범위에서 사용할 수 없습니다. –

답변

4

이것은 함수 내부에서 $ con을 사용하기 때문입니다. 전역 범위의 함수에서 사용할 수 있도록하려면 함수 정의 내에 "global $ con"을 포함시켜야합니다.

function updateRecords(...) { 
    global $con; 
    ... 
} 
+0

스크립트가 현명한 것처럼 보이는 것은 어리석은 것처럼 들리 싫은가요? 나는 PHP에 단 3 주일이 걸리므로, 여러분이 말하는 것에 대해 약간의 추측을 시도했지만 다른 것은하지 않습니다. –

+0

@ghbarrat 예 설명을 더 잘 설명하는 방식으로 수정했습니다. –

+0

@ Zachary 코드 샘플로 답변을 업데이트했습니다. –