0

我正在创建一个 CRUD 页面。我已经能够使用以下代码将数据插入到我的数据库中:

    $query="INSERT INTO user(USER_ID, PASSWORD, FIRST_NAME, LAST_NAME, CONTACT_NO, SHIPPING_ADDRESS, BILLING_ADDRESS, EMAIL) VALUES('$user_id', '$password', '$first_name', '$last_name', '$contact_no', '$shipping_address', '$billing_address', '$email')";
if(mysqli_query($con, $query))
{
echo "<center><font color=#FF0000>Record Inserted!</font></center><br>";
}
else{printf("error: %s\n", mysqli_error($con));}
    }
}

但是,我无法删除或编辑数据,因为会出现“'where 子句'中的未知列”错误。我试过在谷歌上寻找解决方案,但没有奏效。有人可以帮忙看看我的代码中是否有任何错误吗?

以下代码用于编辑数据库中的数据:

$query="UPDATE user SET USER_ID='$user_id' , PASSWORD='$password', FIRST_NAME='$first_name', LAST_NAME='$last_name', CONTACT_NO='$contact_no', SHIPPING_ADDRESS='$shipping_address', BILLING_ADDRESS='$billing_address', EMAIL='$email' WHERE USER_ID=".$_POST['user_id'];
if(mysqli_query($con, $query))
{
    echo "<center><font color=#FF0000>Record Updated!</font></center><br>";
}
else{printf("error: %s\n", mysqli_error($con));}
}

以下代码用于删除数据库中的数据:

    if(isset($_GET['operation'])){
    if($_GET['operation']=="delete")
    {
        $query="DELETE FROM user WHERE USER_ID=".$_GET['user_id'];  
        if(mysqli_query($con, $query))
        {
            echo "<center><font color=#FF0000>Record Deleted!</font></center><br>";
        }
        else{printf("error: %s\n", mysqli_error($con));}
    }
}
4

2 回答 2

4

我猜你的user_idcoulmn 类型是varchar,所以你的查询字符串会抛出一个结果,就像UPDATE ... WHERE user_id=id1;Mysql 假设它id1是一个列并抛出unknown column。所以最好在你的代码中使用这样的引用 UPDATE ... WHERE user_id='".$_POST['user_id']."'

于 2013-05-20T03:57:32.903 回答
1

首先,这是您在使用时应该如何更新数据mysqli

$stmt = $mysqli->prepare("UPDATE name SET firstname = ?, 
   lastname= ?,  
   WHERE id = ?");

$stmt->bind_param('id',
   $_POST['firstname'],
   $_POST['lastname']);
$stmt->execute(); 
$stmt->close();

这就是应该构建 mysqli 查询的方式,以获得更好的性能和安全性。所以,最好重新学习一下你对 mysqli 的了解

现在,就您的代码而言(除了上述问题):

问题似乎在这里WHERE USER_ID=".$_POST['user_id'];

您开始查询,"UPDATE user SET USER_ID='$user_id',因此如果您以双引号开头,则必须维护和注意您的引号序列,您必须以相同的方式结束,并在末尾"包含分号。;

所以,这让我们将您的最后一个代码更改为WHERE USER_ID='.$_POST['user_id'].'";

所以,换掉

"UPDATE user SET USER_ID='$user_id' , PASSWORD='$password', FIRST_NAME='$first_name', LAST_NAME='$last_name', CONTACT_NO='$contact_no', SHIPPING_ADDRESS='$shipping_address', BILLING_ADDRESS='$billing_address', EMAIL='$email' WHERE USER_ID=".$_POST['user_id'];

"UPDATE user SET USER_ID='$user_id' , PASSWORD='$password', FIRST_NAME='$first_name', LAST_NAME='$last_name', CONTACT_NO='$contact_no', SHIPPING_ADDRESS='$shipping_address', BILLING_ADDRESS='$billing_address', EMAIL='$email' WHERE USER_ID='.$_POST['user_id'].'";
于 2013-05-20T03:18:30.080 回答