Php 在一个更新查询中使用两个if(isset($\u POST)数组?

Php 在一个更新查询中使用两个if(isset($\u POST)数组?,php,mysqli,Php,Mysqli,我试图从上一页的隐藏表单中获取id,并将其用作更新查询的变量 到这一点的路径是……: 登录到管理区域(使用其他表)。。。 搜索“企业”数据库中的条目。。。 条目显示有一个更新按钮,更新按钮有一个隐藏的ID…值,该值通过“提交”发布到此页面 if(isset($\u POST[“提交”])和&isset($\u POST[“提交”])) { $id=$_POST[“id”]; $name=$_POST[“uname”]; } $query=mysqli_query($db,“更新业务集用户名=“$

我试图从上一页的隐藏表单中获取id,并将其用作更新查询的变量

到这一点的路径是……: 登录到管理区域(使用其他表)。。。 搜索“企业”数据库中的条目。。。 条目显示有一个更新按钮,更新按钮有一个隐藏的ID…值,该值通过“提交”发布到此页面

if(isset($\u POST[“提交”])和&isset($\u POST[“提交”]))
{
$id=$_POST[“id”];
$name=$_POST[“uname”];
}
$query=mysqli_query($db,“更新业务集用户名=“$name”,其中id=“$id”);
如果($query)
{
$msguname=“您的用户名现在已更新。

”; }

谢谢

您需要对这两个变量使用
isset()
来检查它们

if(isset($_POST['submit']) && isset($_POST["submituname"]))
如果sql查询当前易受注入攻击,请确保使用PDO或mysqli_real_escape_string()。

几乎没有错误

  • 所有功能都必须在IF..内(因此只有在post请求等情况下才会触发)
  • 必须将isset设置为正在检查的两个post参数
  • 如果未设置id,您会怎么做?在这种情况下,我将使用filter_输入提供一个简单的小技巧,该输入在not set param上返回NULL(另一件事是转义,但我将留给您一个小任务来学习如何转义vars…)
  • 最后一件事是你的if($query)…如果你成功了,这是错误的检查
  • 这是一份工作副本

    if(isset($_POST['submit']) && ($_POST["submituname"])) {
        $id = filter_input(INPUT_POST, 'id');
        $name = filter_input(INPUT_POST, 'name');
        $query = mysqli_query($db, "UPDATE businesses SET username='{$name}' WHERE id={$id}");
        if(mysqli_affected_rows($db) === 1){
            $msguname = "<p>Your username has now been updated.</p>";
        } 
    }
    
    if(isset($\u POST['submit'])和&($\u POST['submitname'])){
    $id=过滤器输入(输入后“id”);
    $name=filter_input(输入_POST,'name');
    $query=mysqli_query($db,“更新业务集用户名=“{$name}”,其中id={$id}”);
    if(mysqli_受影响的_行($db)==1){
    $msguname=“您的用户名现在已更新。

    ”; } }
    if($query)不是很好的检查..而是检查mysqli_impacted_rows==1我不清楚问题出在哪里。另外,在sql命令中,单引号应该用于字符串参数,而不是双引号。单引号中的问题:谢谢Tristan。目前在本地服务器上进行的纯测试将添加mysqli_real_e_string()。感谢您的帮助,请注意。感谢Svetilo的精彩解释。不幸的是,我没有运气。我想我可能对我试图实现的目标有点模糊。这是从管理区域更新表。到这一点的路径是:登录到管理区域(使用不同的表)搜索“业务”数据库中的条目显示一个更新按钮,更新按钮有一个隐藏的ID值,该值将发布到此页面。这有帮助吗?
    if(isset($_POST['submit']) && ($_POST["submituname"])) {
        $id = filter_input(INPUT_POST, 'id');
        $name = filter_input(INPUT_POST, 'name');
        $query = mysqli_query($db, "UPDATE businesses SET username='{$name}' WHERE id={$id}");
        if(mysqli_affected_rows($db) === 1){
            $msguname = "<p>Your username has now been updated.</p>";
        } 
    }