大家好,我有这个简单的MYSQL语句,我似乎无法正确插入数据库..
if($item_cat == "Hardware") {
$item_filter = "2";
$item_filter = trim($_POST['item_filter']);
$item_filter = strip_tags($item_filter);
$item_filter = htmlspecialchars($item_filter);
} elseif($item_cat == "Software") {
$item_filter = "3";
$item_filter = trim($_POST['item_filter']);
$item_filter = strip_tags($item_filter);
$item_filter = htmlspecialchars($item_filter);
}
$query = "INSERT INTO items(item_cat , item_filter) VALUES('$item_cat','$item_filter')";
我想要实现的概念是基于用户对基于该选择添加item_filter的选择输入(硬件或软件)的选择。当我尝试运行此代码时,它会告诉我item_filter is undefined.
非常感谢任何帮助或其他方法来解决这个问题。
答案 0 :(得分:1)
为什么有这么多代码来过滤变量。使用函数并在需要时调用它。
首先你要说$ item_filter = 2或3,然后你就像这样分配变量了
$item_filter = trim($_POST['item_filter']);
可能你没有item_filter命名输入。
function filter($data){
$data = trim($data);
$data = strip_tags($data);
$data = htmlspecialchars($data);
return $data;
}
$item_cat=filter($_POST['item_cat']);
if($item_cat == "Hardware")
{
$item_filter = "2";
}
else if($item_cat == "Software")
{
$item_filter = "3";
}
$query = "INSERT INTO items(item_cat , item_filter) VALUES('$item_cat','$item_filter')";
答案 1 :(得分:0)
$_POST['item_filter']
未定义或您的类别不是""硬件"或"软件"。在您的代码示例之前尝试var_dump($item_cat)
,并确保您实际传递了if
个语句之一。
答案 2 :(得分:0)
使用以下代码
$sql = "INSERT INTO items(item_cat , item_filter)
VALUES
(
(CASE item_filter WHEN 'Hardware' THEN 2 ELSE 3 END)
);
答案 3 :(得分:0)
请试试这个
$item_filter = "";
if(strtolower($item_cat) == "hardware")
{
$item_filter = "2";
$item_filter = trim($_POST['item_filter']);
$item_filter = strip_tags($item_filter);
$item_filter = htmlspecialchars($item_filter);
}
elseif(strtolower($item_cat) == "software")
{
$item_filter = "3";
$item_filter = trim($_POST['item_filter']);
$item_filter = strip_tags($item_filter);
$item_filter = htmlspecialchars($item_filter);
}