2

DBにデータを追加するために使用しています。最初に投稿から値を取得し、それをテーブルに挿入します。問題は、合計 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)");


    }

私はすべての値をエコーし​​ 、すべての値が来ているので、なぜそれらがすべてテーブルに挿入されないのですか。感謝

4

3 に答える 3

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 のすべての値をサニツェします。

于 2013-07-27T10:42:01.740 に答える
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)");
于 2013-07-27T10:41:26.530 に答える
0

私の推測では、 varchar であるため、挿入さ$degree_title$uni_nameません。その場合、これらの値を引用符で囲む必要があります。

Mysql は、列の実際の型に関連して sql-statement で不適切な型を使用してもエラーをスローしないという意味で、一種の「寛容」です。

試す:

$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')");

前に述べたように、id を挿入ステートメントに含める必要はありません (id-column が自動インクリメンタルの場合)。mysqli または PDO について実際に学習する必要があります。

于 2013-07-27T11:21:50.280 に答える