簡體   English   中英

使用PHP從MySQL表返回列名

[英]Returning column names from a mySQL table using PHP

我一生都想不通。 嘗試從客戶證券表返回列名,然后將結果作為數組返回。 有人可以指出我偏離軌道的地方嗎?

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);

意見建議:

您已經在mysql_fetch_array()調用前添加了$符號,因此需要為$mysql_fetch_array分配一個值(您要調用的函數名稱)(這可能就是為什么您看到注釋中提到的錯誤的原因) 。

另外,在第二個查詢中,FROM后面還缺少空格

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

最后要檢查的是-是否設置了$clientname

話雖如此-接受Bill Karwin的建議!

我將對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);

您的致命錯誤是由一個單獨的問題引起的:函數調用開始時有一個$符號。 這是合法的PHP語法,因為您可以將函數名稱放入變量中並間接調用它:

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

$bar = "foo";

$bar("hello world");

但就您而言,這可能不是您想要的。 如果要通過函數名稱來調用函數,請不要在其前面加上$ 如果您有一個包含函數名稱的字符串變量,則可以使用上面顯示的變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM