PDO의 bindParams를 사용하는 대신 execute() 메소드에 배열로 PDO 쿼리 매개 변수를 전달하고 싶습니다. 필자는 이렇게함으로써 매개 변수의 수가 다른 유사한 쿼리를 동적으로 실행하는 함수 하나를 만들 수 있습니다.
bindParam() 경로가 예상 결과 산출 :
$stmt->bindParam(":user_id",$user_id,PDO::PARAM_INT);
$stmt->bindParam(":n",$n,PDO::PARAM_INT);
$stmt->execute();
을하지만이 방법은 발생 오류없이 빈 집합 반환
이$params = array(":user_id"=>$user_id,":n"=>$n);
$stmt->execute($params);
누군가가 나에게 설명 할 수 무엇 이들의 차이 두 가지 방법이 있으며 내 문제의 원인은 무엇입니까? 내가보고있는 유일한 차이점은 $ params를 .execute 인수로 전달할 때 형식 (POD :: PARAM_INT)을 지정할 기회가없는 것입니다. 그것이 문제라면, 이것에 대한 해결책이 있습니까?
이것은 중복 질문이 아닙니다. 이 질문은 어떤 것을 사용할 것인지 묻습니다. 내 질문은 어떻게 실행을 적절하게 사용하는지 묻습니다. 질문을 복제물로 표시하기 전에 더 자세히 읽으십시오. – nathan
귀하의 질문은 일반적인 [** xy 문제 **]입니다. (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) LIMIT 변수를 바인딩하는 것에 대해 물어 본 적이 있다면 많은 답변을 발견 [** ie **] (http://stackoverflow.com/questions/2269840/php-pdo-bindvalue-in-limit) –
@ davidstrachan, 나는 동의합니다. 나는 구체적으로하려고 노력하지만, LIMIT에 대한 가치를 구속하는 질문을 할 때 내 문제와 관련이 있다는 것을 깨닫지 못했습니다. – nathan