2012-09-29 5 views
0

나는 배열 값을 전송에 문을 준비하려는하지만PHP의 prepare 문에서 매개 변수를 바인딩하는 방법은 무엇입니까?

내 코드가 작동하지 않습니다

for($bb=0; $bb<sizeof($subject_temp_array)-1; $bb++) 
{ 
    $sql ="select * from tbl_subjects where sub_id = ?"; 
    if ($result = $mysqli->prepare($sql)) 
    { 
     $subject_id = $subject_temp_array[$bb]; 
     $result -> bind_param("i",$subject_id); 
     $result->execute(); 
     $result->store_result(); 
     $rows1 = $result->num_rows; 
    } 
    } 

답변

-1

은 왜 foreach 문을 사용할 수 있습니까? 또한 오류 메시지가 발생합니까? 이 코드를 사용해보십시오 :

error_reporting(-1); 
ini_set('display_errors', 1); 

foreach($subject_temp_array as $subject_id) 
{ 
    $sql = "select * from tbl_subjects where sub_id = ?"; 
    if ($result = $mysqli->prepare($sql)) 
    { 
     $result->bind_param("i", $subject_id); 
     $result->execute(); 
     $result->store_result(); 
     $rows1 = $result->num_rows; 
    } else { 
     throw new Exception("Error preparing query."); 
    } 
} 
+0

작동하지 않습니다. 1 행만 반환합니다. – oded

+0

테이블에 여러 ID가 있습니까? 한 행만 반환한다고 어떻게 결론 내릴 수 있습니까? $ rows1은 각 반복에서 덮어 쓸 것입니다. 아마도 $ rows [] = $ result-> num_rows;를 사용해야합니다. 각 ID에 대한 결과 수를 저장합니다. – PAStheLoD