sql >> データベース >  >> RDS >> Mysql

1つの列のみがページに表示されているときに3つのテーブルの列を更新する方法

    更新の対象とならない列は更新しないでください。たとえば、従来のメッセージが選択された場合、この列のみを更新します。ここではおそらく別のクエリを使用します。

    foreach ($_POST['patientid'] as $index => $patientid) {
        $id = mysql_real_escape_string($_POST['id'][$index]);
        $data1 = mysql_real_escape_string($patientid);
        $data2 = mysql_real_escape_string($_POST['traditionalmessage'][$index]);
        $data3 = mysql_real_escape_string($_POST['simplifiedmessage'][$index]);
        $data4 = mysql_real_escape_string($_POST['engmessage'][$index]);
    
        if ($data2 != null && $data2 != '') {
            mysql_query("UPDATE table SET patientid ='$data1',
              traditionalmessage='$data2' WHERE id=$id")   or die(mysql_error());
        }
        else if ($data3 != null && $data3 != '') {
            mysql_query("UPDATE table SET patientid ='$data1',
              simplifiedmessage='$data3' WHERE id=$id")   or die(mysql_error());
        }
        else if ($data4 != null && $data4 != '') {
            mysql_query("UPDATE table SET patientid ='$data1',
              engmessage='$data4' WHERE id=$id")   or die(mysql_error());
        }
    }
    

    MySQL用の非常に古くて非推奨のPHPAPIを使用していると思います。手始めに、プリペアドステートメントを使用することで多くのメリットが得られます。




    1. sqlplusスクリプトのコンパイルエラーで停止します

    2. mysqlの決定論的関数

    3. 挿入と更新の両方のMySQLFireトリガー

    4. 手順または機能!!!指定された引数が多すぎます