wpdb 更新函数为每个 table 列获取 "Undefined Index" 错误

wpdb Update function getting "Undefined Index" error for each table column

我正在开发一个插件,可以让我添加和删除自定义 table 记录。添加和删​​除记录工作正常。

我也希望能够更新记录。这是我无法弄清楚我做错了什么的地方。

这是我的更新代码,如果有人能指出我正确的方向(我目前专注于 "update selected record" 脚本:

function url_update() {
    global $wpdb;
    $id = $_GET["id"];
    $launchname=$_POST["launchname"];
    $url1 = $_POST["url1"];
    $url2 = $_POST["url2"];
    $urluser = $_POST["urluser"];
    $urlpwd = $_POST["urlpwd"];
    $wpfirstname = $_POST["wpfirstname"];
    $wplastname = $_POST["wplastname"];
    $wpemail = $_POST["wpemail"];
    $activated = $_POST["activated"];

    //update selected record
    if(isset($_POST['update'])){
        $wpdb->update('launcher', 
            array(
                'id' => $id,
                'launchname' => $launchname,
                'url1' => $url1,
                'url2' => $url2,
                'urluser' => $urluser,
                'urlpwd' => $urlpwd,
                'wpfirstname' => $wpfirstname,
                'wplastname' => $wplastname,
                'wpemail' => $wpemail,
                'activated' => $activated
                ),
            array( 'ID' => $id ), //this line fixed the issue
            array('%d','%s','%s','%s','%s','%s','%s','%s','%s','%s'));
    }

    //delete
    else if(isset($_POST['delete'])){   
        $wpdb->query($wpdb->prepare(
            "DELETE FROM wp_tincan_launcher WHERE id = %d",$id
            ));
    }

    else{
    //selecting row to update   
        $selected_record = $wpdb->get_results($wpdb->prepare(
            "SELECT id,launchname,url1,url2,urluser,urlpwd,wpfirstname,
            wplastname,wpemail,activated from launcher where id=%d",$id
            ));
        foreach ( $selected_record as $s ){
            $launchname=$s->launchname;
            $url1=$s->url1;
            $url2=$s->url2;
            $urluser=$s->urluser;
            $urlpwd=$s->urlpwd;
            $wpfirstname=$s->wpfirstname;
            $wplastname=$s->wplastname;
            $wpemail=$s->wpemail;
            $activated=$s->activated;
        }
    }

我认为我的代码是正确的,但是,我非常感谢一些直接针对我的代码的反馈。

编辑:感谢 Pekka 指出我没有识别错误结果。 我从 WP 得到的错误是 "Notice: Undefined index: each column in the DB."

此致

我自己解决了这个问题,方法是更改​​我的更新查询以包含如下新行:array( 'ID' => $id),在类型行之前。

None 我被引导到的链接中,我提供的任何一般建议都没有任何帮助。

我编辑了原始代码以反映完整的工作代码。