2012-04-16 3 views
1

몇 가지 삽입/업데이트를 만드는 데이터베이스 작업 중이며 프로세스가 매우 느립니다.정의되지 않은 변수 호출을 사용하여 함수를 동적으로 작성하십시오.

수정을 시도하는 과정에서 나는 ibase_prepareibase_execute을 발견했으며 이제는 모든 업데이트와 삽입을 수행하는 기능을 사용하고 있습니다.

문제는 삽입 할 필드/업데이트의 수와 함께 제공, 다른 사람이 더 많은 다른 사람들이 변수이고 나는 ibase_execute($query, $field1, $field2,..., $fieldx);

때때로 1에 전화를하는 방법을 모르겠어요.

<?php 
$dbh = ibase_connect($host, $username, $password); 
$updates = array(1 => 'Eric',5 => 'Filip',7 => 'Larry'); 
$query = ibase_prepare($dbh, "UPDATE FOO SET BAR = ? WHERE BAZ = ?"); 
foreach ($updates as $baz => $bar) { 
    ibase_execute($query, $bar, $baz); 
} 
?> 

어떤 아이디어로 작업 할 수 있습니까? 실행 시간에 함수를 정의 할 수 있습니까? 하천이나 뭐 그런가? 시간

답변

1

call_user_func_array에 대한

덕분에 당신이 원하는 일을 할 수 있어야합니다. 그냥 배열로 필드를 넣어 : 답장을 보내

$result = call_user_func_array("ibase_execute", array("field1"); //Just 1 field 
$result = call_user_func_array("ibase_execute", array("field1", "field2", "field3")); //3 fields 
+0

감사합니다, $ 필드 = 새로운 배열 (1,2,3); $ 결과 = call_user_func_array ("ibase_execute", $ fields); $ fields = 새 배열 (a); $ 결과 = call_user_func_array ("ibase_execute", $ fields); 제대로 작동하며 나중에 확인하겠습니다. 감사합니다. P.S. 나는 텍스트 포맷 방법을 모르겠다. – reverendocabron