2012-07-20 106 views
1

我的同一個腳本在另一個頁面上工作,並且同一頁上的其他查詢使用相同的連接字符串。由於某些原因,當我運行'填充'條件時,它說我的連接字符串爲空。 「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

'$ con'可能在'updateRecords'範圍內不可用。 – 2012-07-20 19:31:05

回答

4

這是因爲你在函數內部使用$ con。您需要在函數定義中包含「global $ con」,以使其可以在全局範圍內使用。

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

討厭聽起來真愚蠢,看起來像腳本明智嗎?我只用了3個星期的時間,所以我試着對你們的意見進行一些猜測,但它沒有做任何不同的事情。 – 2012-07-20 19:43:46

+0

@ghbarrat是的,我修改後應該是更好的描述方式。 – 2012-07-20 19:46:20

+0

@Zachary我用代碼示例更新了答案。 – 2012-07-20 19:46:44