我有一张表,我想将歌曲添加到我的数据库中。每首歌都有自己的 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;
最佳答案
问题是因为以下 <input>
元素,
<input type='hidden' name='id' value='id'>
您正在使用相同的字符串 值id
作为所有歌曲的 id 列值。
现在查看您的songs 表结构,id 列的类型为INT
,这意味着您要在整数类型的列中插入一个字符串值。这就是您的业务逻辑失败的原因。
解决方案是,不要使上面的输入元素hidden
.明确放置与特定歌曲名称相对应的歌曲 ID。所以改变上面的<input>
像这样的元素:
<input type='text' name='id' placeholder='id'>
关于php在mysql中添加songID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41702467/