2015-06-21 59 views
0

我想发送一个选项值(从HTML选择标签)到MySQL表中。我测试了每种方法,但都不成功。当我回显选项值时,在屏幕上显示值。但不能插入数据库。任何人都知道一个解决方案? 这是我的代码:插入HTML选项值到mysql表中不工作

<select class="input" name="selector"> 
       <option value="student">a</option> 
       <option value="director">b</option> 
       <option value="master">c</option> 
       <option value="education">d</option> 
      </select> 

<?php 
     $servername = "localhost"; 
     $serveruser = "root"; 
     $serverpassword = ""; 
     $db_name = "university"; 
     // 
     $selector = $_POST["selector"]; 
     // 
     if(isset($_POST["submit"])) 
     { 
      $sqlconnection = new MySQLi($servername,$serveruser,$serverpassword,$db_name); 
      if (!$sqlconnection) 
      { 
       die("Connection error: " . mysqli_connect_error()); 
      } 
      $query="INSERT INTO users VALUES ('$selector')"; 
      mysqli_set_charset($sqlconnection,"utf8"); 
      mysqli_query($sqlconnection,$query); 
      mysqli_close($sqlconnection); 
      // 
      echo($selector); 

     } 
    ?> 
+0

您是否收到错误消息?如果表示失败,你是否检查了'mysqli_query'的结果和'mysqli_error'中的细节?在旁注:您是否意识到了SQL注入的脆弱性?如果'users'具有多个列,则该插入语句将始终失败。 – GolezTrol

+0

thanks.yes,我知道。但没有错误returned.for'users'表我用这个列名作为“用户(用法)”。 –

+0

没有错误返回,因为您似乎没有检查它。对于初学者,'mysqli_query'返回一个布尔值。 – GolezTrol

回答

3

你的问题是在这里

$query="INSERT INTO users VALUES ('$selector')"; 

当您运行查询,数据库引擎不知道什么样的价值观去哪里。 尝试这样的事情,而不是

$query="INSERT INTO users('column_name') VALUES('$selector')"; 

我不知道你的表结构,但是在插入查询,你必须告诉它你要插入,以及你在哪里插入。