html:
php:
php의 빨간색 상자 부분은 html에서 name="new_title_info" 값을 가져와야 합니다. , 여기에 어떻게 작성해야 할까요? 제가 삽입한 문장을 확인하기 위해 하단에 echo를 적어 두었는데, 다음과 같은 값이 비어 있는 것을 발견했습니다. 이제 다이어그램을 해석하는 방법을 수정하면
이 표시됩니다.
$sql=".... 라인에 여전히 문제가 있는데 어떻게 바꾸나요?
html:
php:
php의 빨간색 상자 부분은 html에서 name="new_title_info" 값을 가져와야 합니다. , 여기에 어떻게 작성해야 할까요? 제가 삽입한 문장을 확인하기 위해 하단에 echo를 적어 두었는데, 다음과 같은 값이 비어 있는 것을 발견했습니다. 이제 다이어그램을 해석하는 방법을 수정하면
이 표시됩니다.
$sql=".... 라인에 여전히 문제가 있는데 어떻게 바꾸나요?
<code>$_POST('key') 在“ ”双引号里面的关联数组不需要加‘ ’单引号 $sql="insert into table() values('$_POST[key]')";</code>
문자열을 연결하려면 마침표를 사용하세요. 그렇게 하는 것이 안전하지는 않지만. 매개변수화된 쿼리를 사용하는 것이 더 좋습니다
우선, 직접 작성한 mysql_query는 SQL을 통해 쉽게 삽입됩니다. 둘째, SQL 문에 문제가 있다고 의심되는 경우 특정 값이 기대에 부합하는지 반향하여 타당성 판단을 한 후 SQL 문을 공식화하는 것이 좋습니다.
별도 작성이 간편
$name = $_POST['new_title_info'];
$class = $_POST['new_class_info'];
$sql = "테이블(xxx,xxx)에 삽입 값($name,$class)";
작업그룹에서 코드리뷰를 요구하면 혼난다...
사용자 입력변수는 실제로 SQL에 직접 삽입할 수 없다...
게다가...코드리뷰만 출력하면 된다. 첫 번째 SQL 문을 조립합니다.. 그런 다음 해당 문을 데이터베이스로 직접 가져가서 실행하면 됩니다. 작은 따옴표에 문제가 있다고 육안으로 판단합니다
작은따옴표에도 문제가 있는 것 같습니다.
SQL 문을 인쇄하여 형식이 올바른지 확인하고 mysql에 넣고 실행하면 문제가 나타납니다
이렇게 $_POST
를 인용할 때 작은따옴표를 사용하면 작동하지 않습니다. PHP
안의 작은따옴표는 내부 변수를 실행하지 않으며, 큰따옴표로 변경하면 됩니다. 많은 답변 중에서 SQL
에 의해 주입되기 쉽다는 것이 좋은 제안이라는 의견도 있었습니다. SQL 주입을 방지하려면 수신된 데이터를 처리하고 이스케이프해야 합니다.
"INSERT INTO table_name(열) 값({$_POST['key']})",
가독성을 높이기 위해 중괄호 안에 표시
참고로 모든 사용자 입력은 필터링되어야 하며 데이터베이스에 직접 삽입되어서는 안 됩니다
$_POST[key] 형식으로 작성됩니다.
그런데!
SQL 문을 직접 철자하지 마세요. 안전하지 않습니다. SQL 주입 공격을 방지하려면 전처리 등의 조치를 취해야 합니다.