1

我正在str_replace为我的邮件程序制作一个功能,但我无法工作。我目前正在使用此代码来替换单词:

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

这样做的问题是,如果我更改列名或添加/删除列,那么我将不得不将我的代码更改为。我想知道是否有一种方法可以从数组中获取数据,使其看起来像现在这样:

$vaaw       = array("(voornaam)", "(achternaam)", "(woonplaats)", "(adres)");

所以像:

$vaaw       = array("(1st value)", "(2nd value)", "(3rd value)", "(and so on)");

我得到的列名是:

select column_name from information_schema.columns where table_name='Klant'

长话短说,有没有办法得到这个查询的结果:

select column_name from information_schema.columns where table_name='Klant'

看起来像这样:

$vaaw       = array("(value1)", "(value2)", "(value3)", "(and so on)");

$vervang    = array("$objResult["value1"]", "$objResult["value2"]", "$objResult["value3"]","$objResult["and so on"]");

我在我看过的任何其他网站/论坛上都找不到任何东西,所以如果有人知道是否有某种功能,那就太好了!

4

2 回答 2

1

探针滴答:

<?php
// Grab your mysql result in your $objectResult array as you did in your code, then do the following:

$body = 'Geachte (Voornaam) (Achternaam), welkom bij blablabla... ' . PHP_EOL;

foreach($objectResult as $key => $value) {
  $body = str_replcae('(' . $key . ')', $value, $body);
}

// The output would be something like: "Geachte Jan Janssen, welkom bij blablabla"
?>

所以基本上这会做的是搜索与您的数据库列名相对应的键名,并将它们替换为相应的值。

电子邮件系统的理想选择,简单明了;)

于 2013-06-03T14:48:31.590 回答
1

我不确定我是否完全理解您要完成的工作。但是看看这个,看看这是否是你正在寻找的http://php.net/manual/en/function.mysql-field-name.php

<?php
/* The users table consists of three fields:
 *   user_id
 *   username
 *   password.
 */
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect to MySQL server: ' . mysql_error());
}
$dbname = 'mydb';
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected) {
    die("Could not set $dbname: " . mysql_error());
}
$res = mysql_query('select * from users', $link);

echo mysql_field_name($res, 0) . "\n";
echo mysql_field_name($res, 2);
?>

The above example will output:

user_id
password

您可以使用 mysqli_field_count 和 mysql_field_name 的组合来动态填充数组。基本上,您将确定字段的数量,然后使用 for 循环,使用索引将项目动态附加到数组中。

数组(mysql_field_name($res,0),mysql_field_name($res,1));

于 2013-06-03T14:11:31.330 回答