반응형
$wpdb->와 같은 문을 사용하여 와일드카드 문자가 있는 해시를 표시할 수 있습니다.
와일드카드로 준비된 문장을 작성하려고 하는데 와일드카드의 해시로 보이는 비율 와일드카드 문자가 반환되는 것처럼 보이는 문제에 부딪혔고 그 이유를 잘 모르겠습니다.문제의 코드는 다음과 같습니다.
$condition = $wpdb->prefix."posts.post_title LIKE %%%s%%";
$query['conditions'][] = $wpdb->prepare($condition, $name);
결과는 다음과 같습니다.
posts.post_title LIKE {d690dd63f5944b9bca120e110c22802f0ec841d8120d813dd4abc08cba4a59c0}BT{d690dd63f5944b9bca120e110c22802f0ec841d8120d813dd4abc08cba4a59c0}
누군가 이것의 원인에 대해 아는 사람이 있는지 궁금했습니다.어떤 도움이라도 주시면 대단히 감사하겠습니다.
감사해요.
해시에 대해서는 걱정하지 마십시오. 쿼리를 실행하면 $wpdb에서 %로 대체됩니다.
이러한 해시는 SQL 주입 공격에 대한 해결책으로 WP v4.8.3과 함께 도입되었습니다.
% 캐릭터의 자리 표시자입니다.%s, %d 및 %f 이외의 다른 사용을 방지합니다.승인된 용도 이외의 %가 있으면 %를 해시로 대체합니다.$wpdb가 쿼리를 실행하면 해당 해시가 %로 다시 바뀝니다.
해시를 직접 제거하려면remove_placeholder_escape()
, 다음과 같습니다.
$query['conditions'][] = $wpdb->remove_placeholder_escape($wpdb->prepare($condition, $name));
언급URL : https://stackoverflow.com/questions/53831586/using-like-statement-with-wpdb-prepare-showing-hashes-where-wildcard-character
반응형
'prosource' 카테고리의 다른 글
가변 제품의 각 변동 설정에 사용자 정의 치수 필드 추가 (0) | 2023.10.05 |
---|---|
SQL Server:날짜 시간 필드에 초를 추가하시겠습니까? (0) | 2023.09.25 |
jQuery 트리거 파일 입력 (0) | 2023.09.25 |
판다 이름 가져오기 데이터 프레임 (0) | 2023.09.25 |
SQL Developer를 사용하여 Oracle .dmp 파일 가져오기 (0) | 2023.09.25 |