フィールドが空かどうかを確認して挿入クエリを実行し、空でない場合は更新クエリを実行する if/else ステートメントを設定しようとしています。別々に実行すると両方のクエリが正しいことはわかっていますが、それらを if/else ステートメントに入れると、mysql に手動で行を入力したときにのみ更新クエリが実行されます。基本的に、更新クエリは実行できますが、挿入は実行できません。
if(!empty($_REQUEST['htype'])){
$sql = "INSERT INTO fetss.ocs_extended(ocsID, hwTYPE)
VALUES('" .(int)$_POST['id'] ."', '". $db->quote($_REQUEST['changeTypeID']) ."')";
} else
{
$sql = "UPDATE fetss.ocs_extended SET hwTYPE = '".$db->quote($_REQUEST['changeTypeID'])."' WHERE ocsID IN (".join(",",$checkedHW).")";
}
$db->query($sql);
html コード (私は smarty を使用しているので、値をハードウェア タイプに設定し、値を td タグに表示しています。
<td><input type="hidden" name="htype" value="{$systems[s].hwtype}">{$systems[s].hwtype} </td>
INSERT INTO ON DUPLICATE なども試してみましたがうまくいかなかったので簡単な if/else 文でやってみようと思いました
どんな助けでも大歓迎です:)
編集これは私の重複キークエリでした:
$sql = "INSERT INTO fetss.ocs_extended(ocsID, hwTYPE)
VALUES('" .(int)$_POST['id'] ."', '". $db->quote($_REQUEST['changeTypeID']) ."')
ON DUPLICATE KEY UPDATE hwTYPE = '".$db->quote($_REQUEST['changeTypeID'])."'";