php在mysql中添加songID

标签 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;

最佳答案

问题是因为以下 <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/

相关文章:

mysql - 如何在单个 MySQL 查询中从两个不同的表中获取数据?

java - 像 Java 中的 select 一样实现 SQL

php - 对于下面描述的问题,Solr 是一个很好的解决方案吗?

php - 如何在 iOS 应用程序中显示重音字符实体?

php - 尝试使用(当前 php 日期 - mySQL 时间戳 = 天数差异)进行计算

php - Codeigniter 选择和(有条件的)更新查询

php - 将搜索结果分配给变量 - PHP Fulltext Search Boolean

mysql - Git Bash mysql 空白

javascript - 如何将span存储在php变量中然后用作工具提示文本

php - 编码为 Utf8,我有一些