我正在创建一个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));}
}
}
答案 0 :(得分:4)
我猜您的user_id
coulmn类型为varchar
,因此您的查询字符串会抛出UPDATE ... WHERE user_id=id1;
之类的结果,然后Mysql会认为id1
是一列并抛出{{1} }}。所以最好在你的代码中使用这样的引用
unknown column
答案 1 :(得分: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'].'";
用
{{1}}