2012-07-20 111 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