从MySQL表中获取列名

时间:2013-03-27 09:33:09

标签: php mysql sql

我的MySQL数据库中有一个表,如下所示:

Table: VAAW
Columns:
ID  int(11) PK AI
Voornaam    varchar(45) 
Achternaam  varchar(45) 
Adres   varchar(45) 
Woonplaats  varchar(45) 

我在以下php代码中使用此表:

$strSQL     = "SELECT * FROM NAW.VAAW";
$objQuery   = mysql_query($strSQL);
while($objResult = mysql_fetch_array($objQuery))
{
$Voornaam   = $objResult["Voornaam"];
$Achternaam = $objResult["Achternaam"];
$Adres      = $objResult["Adres"];
$Woonplaats = $objResult["Woonplaats"];

$string     = $_POST['naam'];

$vaaw       = array("(voornaam)", "(achternaam)", "(woonplaats)", "(adres)");
$vervang    = array("$Voornaam", "$Achternaam", "$Woonplaats","$Adres");

echo str_replace($vaaw, $vervang, $string);
echo '<br>';
}

我用它来做什么:
我有一个表单,我可以在文本框中添加一些tekst,当我提交它将回显结果。例如,如果列'Voornaam'包含行'Jack',当我在我的表单中键入文本框时:嘿(voornaam),它应该输出:嘿杰克。

我真的不知道如何提出这个问题,所以我举一个例子。如果我出于某种原因想要更改数据库中的列名,我将不得不根据列名更改来更改此源代码。

示例:

如果我将列名'voornaam'更改为'Vnaam',我还必须更改

$Voornaam  = $objResult["Voornaam"];

$Voornaam  = $objResult["Vnaam"];

所以我的问题是,如果有任何方式可以像第1列,第2列等那样有某种标准,所以我可以在代码中添加它,并且不必每次更改时都更改源代码列名。也许有一个查询功能来做到这一点?我知道这个问题有点模糊,但我希望你理解,如果不是随意在评论中提问。任何帮助都会很棒,因为我不知道如何做到这一点!

注意: 的 我知道我不应该使用mysql_ *,我稍后会切换到PDO。所以请不要再提这个了。

2 个答案:

答案 0 :(得分:4)

如果您使用print_r($objResult),则会看到您的numericalstrings键都有结果。

因此,您可以使用$Voornaam = $objResult["Vnaam"]

代替$Voornaam = $objResult[0]

答案 1 :(得分:1)

您可以通过索引调用列,如:

$Voornaam  = $objResult[0]; //if the first column of the table is "voornaam"

但你必须知道列顺序......

mysql_fetch_array函数可以有第二个参数: MYSQL_ASSOC,MYSQL_NUM,et MYSQL_BOTH 默认为MYSQL_BOTH,它返回一个数组,其中包含每列,一个带有列名的键,另一个有列索引。