只有我的If语句被激活,而不是我的其他,即使我没有为id提供输入

Rya*_*fer 0 php mysql

这是我的代码,由于某种原因,我是否为输入id指定了一个值,它似乎提供了一个,因为只运行if语句.此外,当我为id(或不)提供值时,不会更新或更改任何内容.

<?php
$culture = $_POST["culture"];
if (isset($_POST["id"])) {
    $UID = $_POST["id"];
    mysql_query("UPDATE culture SET cult_desc='$culture' WHERE cult_id=$UID");
    echo $UID . "  " . $culture . " If Statement Activated";
}
else {
     mysql_query("INSERT INTO culture
             VALUES(cult_desc='$culture')");
             echo $culture . " Else Statement Activated";
}
?>
Run Code Online (Sandbox Code Playgroud)

这是html代码:

    <form action="addculture.php" method="POST">
          <span><input type="text" size="3" name="id" />
          <input type="text" name="culture" />
        <input type="submit" value="add" /></span>
    </form>
Run Code Online (Sandbox Code Playgroud)

Mar*_*c B 5

如果您的ID值来自<input>浏览器中的字段,则isset($_POST['fieldname'])始终为真.即使输入字段中没有数据,也始终向服务器提交输入字段.

如果要检查字段中是否有内容,请执行以下操作:

if (isset($_POST['id']) && ($_POST['id'] !== '')) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

那将检查id字段是否存在(应该是),如果它包含的东西不是空字符串 - 所有来自$ _POST/$ _ GET的数据都是一个字符串,即使它是数字数据.