我有变量
$sql1 .= "Brukertype";
从已填充的文本框中获取信息集。它可以具有值Administrator
或值Iskjører
。
在将这些值插入SQL之前更改这些值的最佳方法是什么?
Administrator
值应更改为值1
,Iskjører
更改为值2
。
我无法在问题上使用选择功能(下拉列表),因为需要在我的命令中启用/禁用它。
答案 0 :(得分:0)
这是使用switch语句的合理位置。你想要一个' marshaling'功能,像这样:
function marshal_input($input) {
$result = 0;
switch ($input){
case 'Administrator':
$result = 1;
break;
case 'Iskjører':
$result = 2;
break;
case 'SomethingYouHaventThoughtOfYet':
$result = 3;
break;
default:
$result = 0;
break;
}
}
然而,编组功能的实现几乎可以是任何东西:
function marshal_input($input) {
$options = array("Administrator" => 1, "Iskjører" =>2);
return $options[$input];
}
关键是你需要一些映射的代码,从人类可读的形式到db需要的数字表示。然后你就这样称呼它:
$sql_version = marshal_input($sql1);//Doesn't overwrite the variable
//...or...
$sql1 = marshal_input($sql1);//Note this overwrites the variable.
答案 1 :(得分:-1)
既然你说过:
它可以具有值“Administrator”或值“Iskjører”......
我们只检查该值是否为“管理员”。
试试这个:
$val = 'Administrator'; // user input variable
$sql_val = ($val == 'Administrator') ? 1 : 2;
如果值为'管理员',则将$sql_val
设置为1,否则将$sql_val
设为2