我的SQL查询无法正常工作

时间:2013-07-27 10:39:28

标签: php mysql

我用来将数据添加到DB中。首先,我从post获取值,然后将其插入表中。问题是总共有7个值,但只添加了5个值,其中2个未插入表中。这是我的代码

if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] )) {
        $degree_title = $_POST['degree_title'];
        $degree_year = $_POST['degree_year'];
        $uni_name = $_POST['uni_name'];
        $degree_level = $_POST['degree_level'];
        $major_sub = $_POST['major_sub'];



        $run = mysql_query("INSERT INTO `career_fourudb`.`tffeck_employee_edu` (`id`, `employee_id`, `degree`, `year`, `degree_level`, `major_degree`, `uni`) 
        VALUES (NULL, $eme_uid, $degree_title, $degree_year, $degree_level, $major_sub, $uni_name)");


    }

我回应所有的值,所有的值都来了,所以为什么他们都没有插入表中任何想法。感谢

3 个答案:

答案 0 :(得分:1)

尝试:

$run = mysql_query("INSERT INTO `career_fourudb`.`tffeck_employee_edu` (`id`, `employee_id`, `degree`, `year`, `degree_level`, `major_degree`, `uni`) 
    VALUES (NULL, '$eme_uid', '$degree_title', '$degree_year', '$degree_level', '$major_sub', '$uni_name')");

我强烈推荐:

1)不要使用mysql_,不推荐使用mysqli _ *

2)使用SQL语句清理_POST中的所有值。

答案 1 :(得分:0)

如果id是自动增量,那么你不需要插入它。

试试这个

     $run = mysql_query("INSERT INTO `career_fourudb`.`tffeck_employee_edu` (`employee_id`, `degree`, `year`, `degree_level`, `major_degree`, `uni`) 
    VALUES ($eme_uid, $degree_title, $degree_year, $degree_level, $major_sub, $uni_name)");

答案 2 :(得分:0)

我的猜测是$degree_title$uni_name没有插入,因为它们是varchars。在这种情况下,您必须在这些值附近加上引号。

Mysql是一种宽容的态度。在sql语句中使用与列的实际类型相关的不正确类型时,它不会抛出错误。

<强>尝试:

$run = mysql_query("INSERT INTO `career_fourudb`.`tffeck_employee_edu` (`id`, `employee_id`, `degree`, `year`, `degree_level`, `major_degree`, `uni`)
      VALUES (NULL, $eme_uid, '$degree_title', $degree_year, $degree_level, $major_sub, '$uni_name')");

如前所述,在insert-statement中不必包含id(如果id-column是autoincremental),你应该学习mysqli或PDO。