我的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。所以请不要再提这个了。
答案 0 :(得分:4)
如果您使用print_r($objResult)
,则会看到您的numerical
和strings
键都有结果。
因此,您可以使用$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,它返回一个数组,其中包含每列,一个带有列名的键,另一个有列索引。