MySQLi에서 준비된 문을 사용하여 데이터를 삽입하는 방법을 배우려고합니다.루프에서 MySQLi 준비 문을 사용할 경우 bind_param은 언제 호출합니까?
비록 유사한 문을 반복적으로 효율적으로 실행할 수있는 준비 문이 있다고해도, MySQLi를 사용하여 루프에서 여러 문을 실행하는 예제를 찾을 수없는 것 같습니다. 나는 약, 특히 혼란 해요 다음
- 내 루프 전이나 내 루프 전이나
bind_param
bind_param
를 호출 할 수 있는지 여부 준비된 명령문에 대한 대부분의 자습서는 PDO를 사용합니다. PDO를 사용하면 매개 변수 값의 배열을 execute
으로 전달할 수 있으므로 bindParam
에 전화 할 필요가 없습니다. 이것은 MySQLi의 경우가 아닙니다.
- 할당 값 변수
- 제조 문
- 바인드 변수
- 실행을 확대
- :
PHP 매뉴얼
mysqli_prepare
항목은 동작의 순서를 도시하는 예를 가지고
위의 판단에 따르면, 루프 내에서 bind 문을 호출해야한다고 가정했습니다.
- 변수에
- 할당 값을 문장을 준비
- 바인드 변수
- 는
- 할당을 실행
그러나, PHP 매뉴얼
mysqli_stmt_execute
항목은 다음 동작들의 순서를 도시하는 예를 가지고 변수에 대한 값 - 닫기
이 예제에서 보여주지 않는 한 가지는 변수가 처음 선언 된 부분입니다. 신고되지 않은 변수를 bind_param
에 전달하면 알림을 생성 할 수 있다고 생각했습니다. 나는 정의되지 않은 변수를 참조로 전달 했으므로 마침내 그 변수를 전달할 수 있다고 생각했습니다.
질문 :
이 작업 중 하나를 위해 다른 선호되어 있습니까? 아니면 그냥 당신이하고있는 일에 달려 있습니까? 하나 또는 다른 문제가 있습니까?
참고 : 코드는 이미 MySQLi를 사용하며 PDO로 전환하고 싶지 않습니다. 전환은 현재이 프로젝트의 범위를 벗어납니다.
무엇을 반복하고 있습니까? 루프에서'bind_param'을 호출 한 다음'execute'를 호출 할 수 있습니다. 나는 내가 추측하는 문제를 완전히 이해하지 못하고있다. –
* bind_param보다 먼저 변수를 설정해야합니다. 디버깅하기가 훨씬 쉽습니다. –
내 혼란은 '가치에 의해 지나간'이라는 사고 방식에 머물렀다. 값을 변경 한 후에 다시 바인딩해야한다고 생각했습니다. – toxalot