마무리 할 프로젝트에서 필자는 PHP 용 객체 - 관계형 매핑 솔루션을 작성하고 구현했습니다. 의심과 몽상가가 "어떻게 지구에서?"라고 부르기 전에, 늦은 정적 바인딩 작업을 할 수있는 방법을 찾지 못했습니다. 가능한 최선의 방법으로 작업하고 있습니다.PHP + MYSQLI : 준비된 명령문을 사용한 변수 매개 변수/결과 바인딩
어쨌든 bind_params()
또는 bind_result()
메서드에 가변 개수의 인수를 전달할 수있는 방법이 없기 때문에 현재 쿼리 준비 문을 사용하지 않습니다.
가변 개수의 인수를 지원해야하는 이유는 무엇입니까? 내 모델의 수퍼 클래스 (해킹 된 PHP ActiveRecord wannabe로서의 내 솔루션)는 쿼리가 정의 된 곳이므로 find() 메서드는 바인딩하는 데 필요한 매개 변수의 수를 알지 못합니다 .
이제 인수 목록을 작성하고 eval()에 문자열을 전달하는 방법을 생각해 보았습니다.하지만이 솔루션을별로 좋아하지 않습니다. 저는 보안 점검을 구현하고 전달할 것입니다. 진술.
누구든지이 작업을 수행하는 방법에 대한 제안 (또는 성공 사례)이 있습니까? 이 첫 번째 문제를 해결하는 데 도움을 줄 수 있다면 결과 집합 (테이블 구조를 결정하기위한 초기 쿼리가 포함 된 경우 더 많은 리소스가 필요할 것으로 생각됩니다)을 바인딩 할 수 있습니다.
함수 이름은'bindparams' 대신'bind_param'이어야한다고 생각합니다. 적어도'mysqli' 버전에서는'$ stmt-> bindparams()'가 아닌'$ stmt-> bind_param()'을 사용합니다. 건배! –