php在mysql中添加songID

时间:2017-01-17 16:41:42

标签: php mysql database unique

我有一张桌子,我想在我的数据库中添加歌曲。每首歌都有自己的songID,所以当我尝试添加歌曲时,它还必须更新songID。在这一刻它没有工作。

if($action == "add-songs"){

    $db = mysqli_connect($host, $user, $pass,$database);

    if($_GET['action3'] == "2"){        
        mysqli_query($db, "INSERT INTO songs (id, songName, songID) VALUES (0, '".$_GET['songname']."', '".$_GET['id']."')");                    
        header("Location: /?action=show-songs");
    }   
    $h = "";
    $h.= "";

    $h.= "<form><input type='hidden' name='action' value='add-songs'><input type='hidden' name='action3' value='2'><input type='hidden' name='id' value='id'><table class='table table-striped'>";
    $h.= "  <tr>";
    $h.= "      <td><b>Nummer</b></td>";
    $h.= "      <td><input type='text' name='songname' class='form-control' placeholder='Naam'></td>";
    $h.= "  </tr>";
    $h.= "  <tr>";
    $h.= "      <td colspan='2'><input class='btn btn-primary' type='submit' value='UPDATE'></td>";
    $h.= "  </tr>";
    $h.= "</table></form>";

    echo $htop;
    echo $h;
    echo $hbot;

1 个答案:

答案 0 :(得分:0)

问题是由于以下<input>元素

<input type='hidden' name='id' value='id'>

您为所有歌曲使用相同的字符串id作为 id 列值。

现在查看歌曲表格结构, id 列的类型为INT,这意味着您要在列中插入字符串值整数类型。这就是您的业务逻辑失败的原因。

解决方案是,不要制作上述输入元素hidden。明确地将歌曲ID对应于特定歌曲名称。因此,请更改上面的<input>元素:

<input type='text' name='id' placeholder='id'>