HTML select TAG 到 mysql

HTML select TAG into mysql

所以,我想上传一个文件并从 select 标签中选择(例如)"Value 1"。然后当我单击“发布”按钮时,我想从脚本中检查我是否 selected 值 1,如果我这样做了,那么我想将文件 ("file_name") 放在 [=18= 列中],如果我 selected Value 2 我想把它放在其他列等等。

<div><input type="file" name="file_name">    
<div><input type="file" name="inputname">
       <select id="select_id" name="select_name">
       <option value="null">None</option>
       <option value="value1" name="value1name">Value 1</option>
       <option value="value2" name="value2name">Value 2</option>
       </select></div>
<div>
<div><input type="submit" name="submit" value="Publish"></div>
</div>    
<?php

if(isset($_POST['submit'])){

$filename = $_FILES['file_name']['name'];
$filename_tmp = $_FILES['file_name']['tmp_name'];
$select_tag = $_POST['select_name'];

move_uploaded_file($filename_tmp, "somewhere/$filename");

if($select_tag == 'value1name'){

        $insert_db = "insert into mydb ('columndb') values ('$filename')";
        $run_db = mysqli_query($db, $insert_db, MYSQLI_STORE_RESULT);
    }
}
?>
if ($_POST['select_tag'] == 'Something') {

我想这就是你想要的

选项不应该有名称,只有值。 所以你会验证如下:

if($select_tag == "value1")
{
   //...
   //You're also using apostrophes in the query, on the column name, which is wrong.
   //Change to this:
   $insert_db = "insert into mydb (`columndb`) values ('$filename')";
}

如果 $select_tag 正确地将您选择的 'value' 作为列名,那么以下应该是合适的:

$insert_db = "insert into mydb (`$select_tag`) values ('$filename')";

请注意,使用表单中的值作为列名在安全方面非常糟糕。恶意的人可能会手动提交一个值,导致数据被放入另一个字段,或者执行 sql 注入(因为在执行 SQL 之前你没有转义 $select_tag 或 $filename查询。

你最好有一个 'if' 语句块,或者 'switch',它根据一组预定义的值选择一个列。

示例:

$target_column = ""; // input column
switch($select_tag) {
    case "column1":
        $target_column = "columndb";
        break;

    case "column2":
        $target_column = "anothercolumn";
        break;

    default:
        $target_column = "column1";
        break;
}

$filename = mysql_escape_string($filename); // mysql_escape_string is deprecated in later php versions... Use an alternative like mysqli_real_escape_string()
$insert_db = "insert into mydb (`$target_column`) values ('$filename')";
$run_db = mysqli_query($db, $insert_db, MYSQLI_STORE_RESULT);