我有一张桌子,我想在我的数据库中添加歌曲。每首歌都有自己的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;
答案 0 :(得分:0)
问题是由于以下<input>
元素
<input type='hidden' name='id' value='id'>
您为所有歌曲使用相同的字符串值id
作为 id 列值。
现在查看歌曲表格结构, id 列的类型为INT
,这意味着您要在列中插入字符串值整数类型。这就是您的业务逻辑失败的原因。
解决方案是,不要制作上述输入元素hidden
。明确地将歌曲ID对应于特定歌曲名称。因此,请更改上面的<input>
元素:
<input type='text' name='id' placeholder='id'>