1

私の同じスクリプトは別のページで機能し、同じページの他のクエリは同じ接続文字列を使用しています。何らかの理由で、'filled' 条件を実行すると、接続文字列が null であると表示されます。「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 に答える