2010-01-17 3 views
0

나를 살릴 수는 없습니다. clients 증권 테이블에서 컬럼 이름을 리턴하려고 시도한 다음 결과를 h 열로 리턴합니다. 아무도 내가 추적에서 벗어나고 있다는 것을 지적 할 수 있습니까?PHP를 사용하여 mySQL 테이블에서 열 이름을 반환하는 중

mysql_select_db("HandlerProject", $con);  //Selects database 
    $selectcols = "SELECT * FROM ".$clientname."securitiestable";  //selects all  columns from clients security table 
    $tempcols = mysql_query($selectcols) or die(mysql_error()); 
    $returnedcols = $mysql_fetch_array($tempcols); 
    $tempsymbol = mysql_query("SHOW COLUMNS FROM".$clientname."securitiestable"); 
    $symbol = $mysql_fetch_array($tempsymbol); 
+0

마지막 두 줄은 정상적으로 작동합니다. 뭐가 문제 야? –

+0

$ returnedcols 및 $ 기호 행에 대해 "치명적 오류 : 함수 이름이 문자열이어야합니다." – JoeCortopassi

답변

5

제안 : 당신은로 MYSQL_ASSOC를 (접두어 $ 징후를 가지고

)은 그래서 당신이 아마 이유 ($mysql_fetch_array에 값 (통화 할 함수 이름)을 할당해야 할 것입니다 호출 댓글에서 언급 한 오류가 표시됩니다.) 또한

당신이 후 두 번째 쿼리

//           v 
$tempsymbol = mysql_query("SHOW COLUMNS FROM ".$clientname."securitiestable"); 

확인하는 마지막 일에서 FROM 공간 누락 한 - $clientname 세트는?

Bill Karwin의 충고를 받아 들였습니다.

3

나는 SELECT 쿼리 mysql_fetch_assoc()을 사용하고 결과의 모든 행에 array_keys()를 호출합니다.

$selectcols = "SELECT * FROM ".$clientname."securitiestable"; 
$tempcols = mysql_query($selectcols) or die(mysql_error()); 
$returnedcols = mysql_fetch_assoc($tempcols); 
$colnames = array_keys($returnedcols); 

귀하의 치명적인 오류가 있기 때문에 별도의 문제이다 : 당신이 당신의 함수 호출의 시작에서 $ 기호가 있습니다.

function foo($arg) 
{ 
    echo $arg . "!\n"; 
} 

$bar = "foo"; 

$bar("hello world"); 

그러나 귀하의 경우

, 당신이 의도 아마 아니다 : 당신이 변수에 함수의 이름을 넣을 수 있습니다 간접적으로 호출하기 때문에, 법적 PHP 구문입니다. 리터럴 이름으로 함수를 호출하려면 $을 앞에 두지 마십시오. 함수의 이름을 포함하는 문자열 변수가 있다면 위에 표시된 것처럼 변수를 사용할 수 있습니다.

+0

이 게시물은 오래된 것으로 알고 있지만 저는 궁금합니다. 위의 방법 - DB에서 모든 행을 선택하지 않습니까? 'SHOW COLUMNS FROM'이 열 이름을 잡을 때? 실례합니다. –

+0

mysql_unbuffered_query()를 사용하면 첫 번째 행만 가져올 수 있습니다. –

관련 문제