使用PHP从mySQL表返回列名

时间:2010-01-17 01:26:04

标签: php arrays 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);

2 个答案:

答案 0 :(得分:5)

建议:

你有$个符号作为mysql_fetch_array()调用的前缀,所以你需要为$mysql_fetch_array分配一个值(你要调用的函数名)(这可能就是你的原因)重新看到你在评论中提到的错误。)

此外,您在第二个查询中的FROM之后缺少空格

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

要检查的最后一件事是$clientname设置?

话虽如此 - 请听Bill Karwin的建议!

答案 1 :(得分:3)

我会将mysql_fetch_assoc()用于SELECT查询,然后在结果的任意一行调用array_keys()

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

您的致命错误是由于一个单独的问题:您在函数调用开始时有一个$符号。这是合法的PHP语法,因为可以将函数的名称放在变量中并间接调用它:

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

$bar = "foo";

$bar("hello world");

但在你的情况下,它可能不是你想要的。如果要按文字名称调用函数,请不要在其前面放置$。如果你有一个包含函数名称的字符串变量,那么你可以使用我在上面显示的变量。