mysql 초보 질문입니다~
본문
안녕하세요~
mysql select 문에서
WHERE aa_type = ? AND bb_dt_state = 1
aa_type = ?
물음표가 있는내용은 어떤내용인가요..?
검색이 되지 않아
질문을 던져보네요..
미리 답변에 감사드립니다~~
답변 3
sql 인젝션과 같은 외부 공격에 방어하기 위한 목적과,
쿼리 속도를 증가 시키기 위한 목적,,
쿼리 구문과 파라메타를 매핑할려는 목적,, 등
여러가지 이유 때문에 bind_param 을 사용합니다.
그누보드는 bind_param 을 사용하지 않는데, 아마도 초보자가 쿼리를 이해하고 응용하는데 어려움이 있어 난이도를 낮추기 위한 목적이 아닐까 합니다.
실무에서는 무조건 bind_param을 쓰셔야 합니다. 안 그러면 사수님한테 욕먹거나, 그누보드 욕을 할거에요.
어렵다고 외면하지 마시고, bind_params 으로 된 코드를 응용해서 본인도 bind_params을 쓰시는게 좋습니다.
bind_params을 사용하기 위해서는 mysqli_ 또는 PDO 를 호출하여 DB와 접속합니다.
기본 코드로 작성하면, 코드도 길어지고 중복되어 가독성이 나쁩니다. 그래서 보통 이를 Wrapper 한 클래스를 사용하는데
전체 코드를 본것이 아니라서, 코드로 가이드를 드리기는 어렵고, 위에 얘기한것처럼 기존에 동작하는 코드를 충분히 숙도하여 응용하시는걸 추천드립니다.
bind_params 을 꼭 쓰세요.
전체 코드를 봐야겠지만 ? 가 들어간거를 보니 bind_param 말씀하시는거 같네요.
아마 그 sql문 아래쪽 코드에 ? 에 들어갈 값을 세팅하는 코드가 있을 것입니다.