2016-07-04 72 views
0
<? if($_POST['submit']) 
{ $taskSelect =$_POST['taskOption']; 

    $sql =array(); 
    foreach($_POST['task'] as $key => $value){ 
$sql[] =mysql_real_escape_string($value); 
    } 
    $ab ="INSERT INTO" .$taskSelect. "(u_id,task) VALUES ('".$_SESSION['id']."','".implode(',', $sql)."')"; 
} 
$asc =mysql_query($ab); 
?> 

HTML
如何将数据插入表中从表格中获取表名值?

是否有可能这样做,因为我已经尝试过这一点,但如果我使用从形式采取的表名没有值被插入到表?

<select name="taskOption"> 
<option value="today">Today</option> 
    <option value="weekly">Weekly</option> 
    <option value="month">Monthly</option> 
</select> 
+0

如果不更改为预处理语句,务必转义'$ taskSelect'。 – Dan

+0

@Dan:最好是限制'switch'语句中的可能性。预先准备的报表不允许进行表格替换。 –

回答

2

你错过了一些空间:

$ab ="INSERT INTO" .$taskSelect. "(u_id,task) VALUES ('".$... 

应该

$ab ="INSERT INTO " .$taskSelect. " (u_id,task) VALUES ('".$... 

话虽这么说,不要再使用mysql_*了准备好的陈述和输入验证。你现在对SQL注入非常开放。

1

你必须INTO后添加一个空格,“前

$ab ="INSERT INTO " .$taskSelect. "(u_id,task) VALUES ('".$_SESSION['id']."','".implode(',', $sql)."')";