2013-07-27 3 views
2

DB에 데이터를 추가하는 데 사용하고 있습니다. 먼저 게시물에서 값을 가져 와서 테이블에 삽입합니다. 문제는 총 7 개의 값이 있지만 5 개의 값만 추가되고 그 중 2 개는 테이블에 삽입되지 않는다는 것입니다. 여기 내 코드가MY SQL 쿼리가 완전히 작동하지 않습니다.

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


    } 

나는 모든 값을 되풀이하여 모든 값이 나오기 때문에 왜 모든 것이 테이블에 삽입되지 않는가?

+0

문자열의 값은 '$ degree_title'이어야합니다. – Rufinus

+2

준비하십시오 : 준비된 명령문 및 바인드 변수를 사용하여 MySQLi 또는 PDO를 사용하는 방법을 배우면이 문제가 발생하지 않을 것입니다. 교육 기관은 지난 세기가 아닌 금세기의 관습을 사용하게 될 것입니다 –

+0

@ MarkBaker +1, 문제는 많은 "나쁜"사람들이 거기에있는 방법입니다 ... – Rufinus

답변

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)"); 
+0

$ degrees_title –

+0

@echo_me와 같은 문자열 필드는 도움이되지 않습니다.이 코드는 작동하지 않으며 id를 제거하지도 않습니다.그것은 둘 다 작동하지만, 주된 문제는 단지 5 개의 값이 삽입 된 이유입니다. –

+0

'$ eme_uid'가 삽입되어 있지 않다고 생각합니다. 여러분이 정의하고있는 것을 보지 못했습니다. –

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) sanitze SQL 문에서 _POST의 모든 값을 사용하십시오.

+0

나는 php에서 새롭기 때문에 나는 그것을 사용하는 당신을 얻지 못한다. –

+0

"php sanitize user values"를 검색하고 링크 양식을 잘 살펴보십시오. Mark Baker http://phptherightway.com – Rufinus

+0

mysqli와 sanitze를 사용하지만 여전히 동일한 문제가 있습니다. 5 개 값만 삽입하면 7 개 값 모두가 삽입되지 않습니다. –

0

제 생각 엔 $degree_title$uni_name은 varchars이기 때문에 삽입되지 않습니다. 이 경우 이러한 값을 따옴표로 묶어야합니다.

Mysql은 SQL 문에서 실제 유형과 관련하여 잘못된 유형을 사용할 때 오류를 발생시키지 않는 "용서"의 일종입니다.

시도 : 삽입 문에서 (ID-열이 autoincremental 경우) ID를 포함 할 필요가 없습니다, 당신은 정말 mysqli 또는 PDO를 배워야한다 전에 언급 한 바와 같이

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

.

관련 문제