반응형
SQL 주입을 제거하고 싶습니다. mysqli_real_escape_string ()
을 사용해야합니까, 아니면 mysqli에서 명확합니까?
예를 들면
$nick = mysqli_real_escape_string($_POST['nick'])
해결 방법
이 예제는 문서에서 가져온 것입니다.
/* create a prepared statement */
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {
/* bind parameters for markers */
$stmt->bind_param("s", $city);
/* execute query */
$stmt->execute();
/* bind result variables */
$stmt->bind_result($district);
/* fetch value */
$stmt->fetch();
printf("%s is in district %s\n", $city, $district);
/* close statement */
$stmt->close();
}
이 예에서는 mysqli_real_escape_string
을 호출하지 않습니다 . 쿼리에 문자열을 직접 포함하는 경우에만 mysqli_real_escape_string
을 사용하면되지만 절대 이렇게하지 않는 것이 좋습니다. 가능하면 항상 매개 변수를 사용하십시오.
관련
참조 페이지 https://stackoverflow.com/questions/14011899
반응형
'MySql' 카테고리의 다른 글
MySQL How to connect MySQL workbench with MAMP PRO? (0) | 2021.01.17 |
---|---|
MySQL Python mysqldb를 사용하여 한 번에 여러 행을 삽입하는 방법 (0) | 2021.01.17 |
MySQL 사용자 입력 JTextField에서 MySql 테이블에 값을 삽입하는 방법 (0) | 2021.01.17 |
MySQL datetime 필드 (mysql)에서 날짜 만 추출하여 PHP 변수에 할당 (0) | 2021.01.17 |
MySQL PHP PDO 대 일반 mysql_connect (0) | 2021.01.17 |
댓글