. 모든 삽입, 업데이트, SQL 통과를 처리하려고 할 때 유사한 SQL 주입 원칙에 따라 심각한 디버깅 문제가 발생할 수 있습니다.
"myValue"필드에 작은 따옴표, 큰 따옴표, 이중 하이픈 (주석 표시)이 있으면 어떻게됩니까? 너는 묶여있을거야.
VFP 변수 참조를 사용하는 등의 문을 매개 변수화 한 다음 "?" SQL 문에서 "value"를 사용해야하는지 확인하십시오. VFP가 제대로 전달됩니다. 이것은 "myStatement"를 만들 때 숫자를 문자열로 변환하는 것과 같은 데이터 유형에도 도움이됩니다.
또한, VFP에서, 당신이 명령의 가독성을 단순화하기 위해 TEXT/ENDTEXT을 사용할 수 있습니다
lcSomeStringVariable = "My Test Value"
lnANumericValue = 12.34
lnMyIDKey = 389
TEXT to lcSQLCmd NOSHOW PRETEXT 1+2+8
update [YourSchems].[YourTable]
set SomeTextField = ?lcSomeStringVariable,
SomeNumberField = ?lnANumericValue
where
YourPKColumn = ?lnMyIDKey
ENDTEXT
=sqlexec(yourHandle, lcSQLCmd, "localCursor")