$\u PHP更新后出现错误且未发送选项

$\u PHP更新后出现错误且未发送选项,php,post,mysqli,isset,Php,Post,Mysqli,Isset,我正在尝试$\u发布以下mysql表的更新: 注意:有3个下拉列表:状态、类别和访问权限 app_generalData --------------- app_id table status_id category_id tags access_id 使用print_r($_POST)和echo进行的结果测试确保表单$_POST正常工作: Array ( [MAX_FILE_SIZE] => 100000 [app_id] => 1

我正在尝试$\u发布以下mysql表的更新:
注意:有3个下拉列表:状态、类别和访问权限

app_generalData
---------------
app_id
table
status_id
category_id
tags
access_id
使用print_r($_POST)和echo进行的结果测试确保表单$_POST正常工作:

Array ( 
        [MAX_FILE_SIZE] => 100000
        [app_id] => 1 
        [title] => Nothing Special 
        [status] => 
        [category] => 
        [tags] => new tag 
        [access] => 
        [update] => Update ) 

表单中的数据。

  • ID:1
  • 标题:没什么特别的
  • 状态:
  • 类别:
  • 标签:新标签
  • 访问:
产生的错误消息:
期望的结果:
  • $\u发布数据库中更新的项目
  • 要更新的代码段:
    //将更新发布到app\u generalData
    如果(isset($_POST['update'])){
    //打印(邮政美元);
    //回声“
    ”; //连接到数据库 $dbc=mysqli\u connect(DB\u主机、DB\u用户、DB\u密码、DB\u名称); //从帖子中获取数据 //一般数据 $app_id=mysqli_real_escape_字符串($dbc,trim($_POST['app_id']); $title=mysqli\u real\u escape\u字符串($dbc,trim($\u POST['title']); $status=mysqli\u real\u escape\u字符串($dbc,trim($\u POST['status']); $category=mysqli\u real\u escape\u string($dbc,trim($\u POST['category']); $tags=mysqli\u real\u escape\u字符串($dbc,trim($\u POST['tags']); $access=mysqli\u real\u escape\u字符串($dbc,trim($\u POST['access']); //与用户确认成功 回显“表单中的数据。
    ”; 回显“ID:”.$app_ID.
    ; 回显“Title:”.$Title.“
    ”; 回显“状态:”.$Status.“
    ”; 回显“类别:”.$Category.“
    ”; 回显“标记:”.$Tags.“
    ”; 回显“访问:”.$Access.“
    ”; 回声“
    ”; //将数据写入数据库 $query=“更新应用程序\u一般数据 SET title=$title, status_id=$status, category_id=$category, tags=$tags, access\u id=$access 其中app\u id=$app\u id "; mysqli_查询($dbc,$query) 或die('查询数据库中的常规数据时出错'); //关闭MySQL mysqli_close($dbc); 退出(); } 否则{ echo“请在下面输入所有详细信息”; }
    每当你发现mysql\u错误时,我建议你做的第一件事就是回显查询,如果问题不是通过查看代码发现的

    这里的问题似乎是您没有在
    '
    (引号)中围绕字符串,例如:


    在运行
    打印($query)
    后,我注意到该查询发布了以下内容:

    UPDATE app_generalData
    SET title = Nothing Special,
        status_id = ,
        category_id = ,
        tags = new tag,
        access_id = 
    WHERE app_id = 1
    
    错误原因:值周围没有标记(“或”)

    工作解决方案:

    我已将查询更新为以下内容

    UPDATE app_generalData
    SET title = '".$title."',
        status_id = '".$status."',
        category_id = '".$category."',
        tags = '".$tags."',
        access_id = '".$access."'
    WHERE app_id = $app_id
                ";
    

    您是否回应了
    mysqli\u错误
    ?实际错误是怎么说的?@Rasclatt感谢您的建议。我给了您一张赞成票,因为您的建议让我跳出了框框。当我在$query上运行print\r时,我可以看到设置项并没有在$var(s)周围加引号。我将为未来的访问者发布更正后的编辑。感谢您的回复。它是在我发布我自己的更正时通过的,因为我刚刚测试并注意到了同样的事情。我现在测试了您的编辑,它似乎与您编写它的方式相同。我已经给了您一个放弃投票的机会,但是……您能告诉我为什么我的选择是正确的吗ons没有出现在$\u POST中?是否需要在标记中添加其他内容以包含它们$\u POST?如果没有您的html代码,很难判断问题出在哪里,但您最好选择正确的答案,然后用正确的代码重新打开另一个问题,因为这与此问题不同。
    $query = "UPDATE      app_generalData
        SET         title = '$title',
                    status_id = '$status',
                    category_id = '$category',
                    tags = '$tags',
                    access_id = '$access'
        WHERE       app_id = '$app_id'
        ";
    
    UPDATE app_generalData
    SET title = Nothing Special,
        status_id = ,
        category_id = ,
        tags = new tag,
        access_id = 
    WHERE app_id = 1
    
    UPDATE app_generalData
    SET title = '".$title."',
        status_id = '".$status."',
        category_id = '".$category."',
        tags = '".$tags."',
        access_id = '".$access."'
    WHERE app_id = $app_id
                ";