2016-11-01 5 views
1

제 삽입 문에 잘못된 점을 찾으려고합니다. 나는 SQL을 잘 알고 있지만 PHP에 대해서는별로 모른다. 내 insert 문은 아래와 같습니다. 나는 항상 데이터베이스 오류 또는 유효하지 않습니다. 데이터베이스가 다른 페이지에서 작동하기 때문에 올바르게 설정되었습니다. 나는 뭔가 간단한 같은 인용 부호 등을 생각select와 변수를 사용하여 PHP를 삽입하십시오.

$sSQL = INSERT INTO "budget_bdg" ("bgd_grp_ID", "bdg_year", "bdg_alloc")Select "grp_ID", " . $iFYID ." , "0" from "group_grp"; 
+3

거의 모든 것. – Phiter

+2

SQL 인젝션에 대비하여 코드를 보호하는 준비된 문 **을 찾습니다. 시작하기 좋은 곳은 [PHP.net 매뉴얼] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)입니다. 그것도 PHP와 함께 MySQL을 작성하는 방법을 보여줍니다. –

답변

1

당신이 테이블 이름 또는 열 이름을 참조하는 경우,`대신 역음을 사용 (또는 열/테이블 이름 경우, 전혀 사용하지 않는 공백 없음).

$sSQL = "INSERT INTO `budget_bdg` 
     (`bgd_grp_ID`, `bdg_year`, `bdg_alloc`) 
     values (select `grp_ID`, 
         '$iFYID' 
         0 from `group_grp`"; 

이 코드는 $iFYID의 값에 따라 안전하지 않은 있음을 유의하십시오.

+0

* "테이블 이름이나 열 이름을 참조하는 경우 대신 백틱을 사용하십시오."* - 완전히 사실이 아닙니다. 테이블/열 이름에 공백이나 하이픈 또는 예약어가 포함되어 있지 않으면; 예. 그렇지 않으면 필요하지 않습니다. 이것에 대해 명확히 할 필요가 있습니다 ;-) –

+0

Fred에게 감사드립니다. 그는 실제로 그들을 사용하거나 사용하지 않을 수 있습니다. – Phiter

+0

안녕하세요. Phiter, * cheers * –

0

알아낼 수 있습니다.

$sSQL = "INSERT INTO budget_bdg (bdg_grp_ID, bdg_year, bdg_alloc) Select grp_ID, $iFYID , '0' from group_grp"; 
관련 문제