2015-01-02 2 views
0

이것은 매우 간단한 PHP 이론에 기반을두고 있지만 꼭 필요한 것은 아닙니다. 두 가지 다른 방법으로 할당 된 두 php 변수의 차이

나는 현재 내가 루프 내부의 해당 테이블의 각각의 결과 집합을 얻을 싶어요, (된 table_1, table_2, table_3 등)로 알려진 10 개 테이블이 시나리오

입니다. 난 그냥 하드 코드 테이블 이름을 넣으면 그래서 난 아래의 코드는 오류

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in 
을 반환 사용할 때 내 요구 사항을 fullfill에 위해

는 코드

$table_count = mysql_query("SELECT TABLE_NAME FROM information_schema.tables WHERE 
table_schema = 'milepostdb' AND table_name LIKE 'table_%' "); 

while($row = mysql_fetch_array($table_count)){ 
$table = $row["TABLE_NAME"]; 

$excute = mysql_query("CALL Dummy_2('$table')"); 
$result = mysql_fetch_assoc($excute);//line which triggers the error 
var_dump($result); 
} 

하지만 그것을 잘 작동합니다

$var = 'table_1'; 
$excute = mysql_query("CALL Dummy_2('$var')"); 
$result = mysql_fetch_assoc($excute); 
var_dump($result); 

또는

$excute = mysql_query("CALL Dummy_2('table_1')"); 
$result = mysql_fetch_assoc($excute); 
var_dump($result); 

위의 코드는 모두 잘 작동합니다.

$table = $row["TABLE_NAME"];을 통해 전달 된 변수가 정상적으로 작동하면 할당 된 정상 변수가 오류를 반환하는 이유는 무엇인지 알 수 있습니다. 두 가지 접근 방식의 차이점은 무엇입니까 ???

+2

mysql_query()를 호출하는 것을 잊었습니다. – Barmar

+0

죄송합니다 ... 그게 아니라 ... 그 질문을 게시하는 동안 실수. 난 그저 편집 –

+1

오류는'mysql_query()'가'false'를 반환한다는 것을 의미한다. 이것은 당신이 SQL 에러를 가지고 있음을 의미한다. 'mysql_query()'줄 끝에'die or mysql_error())'를 추가하면 그 이유를 알 수있다. – Barmar

답변

1

다른 쿼리를 시작하려면 먼저 첫 번째 쿼리의 모든 결과를 읽어야합니다.

$tables = array(); 
$table_count = mysql_query("SELECT TABLE_NAME FROM information_schema.tables WHERE 
    table_schema = 'milepostdb' AND table_name LIKE 'table_%' ") or die(mysql_error()); 

while($row = mysql_fetch_array($table_count)){ 
    $tables[] = $row["TABLE_NAME"]; 
} 
mysql_free_result($table_count); 

foreach ($tables as $table) { 
    $excute = mysql_query("CALL Dummy_2('$table')") or die(mysql_error()); 
    $result = mysql_fetch_assoc($excute);//line which triggers the error 
    var_dump($result); 
} 
+0

OP는 mysql_query라고합니다. $ 결과 = mysql_fetch_assoc (mysql_query ($ excute)); –

+0

죄송합니다. 실수로 .. 아프다. –

+0

위와 같은 오류가 있지만, "명령이 동기화되지 않았으므로이 명령을 실행할 수 없습니다."... 정확한 방법은 무엇입니까? 이런 ..... 배열 ([TABLE_NAME] => table_1) 배열 ([TABLE_NAME] => table_2) 명령이 동기화되지 않았습니다. 당신은 지금이 명령을 실행할 수 없습니다 –

관련 문제