1

我的相同脚本在另一个页面上工作,并且同一页面上的其他查询使用相同的连接字符串。出于某种原因,当我运行“填充”条件时,它说我的连接字符串为空。“mysql_query() 期望参数 2 是资源,在...中给出 null” 但是,如果我运行 'filled2' 条件,它执行得很好。谁能看到我看不到的东西?

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";

}
4

1 回答 1

4

这是因为您在函数内部使用了 $con 。您需要在函数定义中包含“global $con”,以使其可用于全局范围内的函数。

function updateRecords(...) {
    global $con;
    ...
}
于 2012-07-20T19:32:07.123 回答