为变量分配记录集中的值


Assigning a variable a value from an recordset

很抱歉,但我对PHP很陌生,我正在尝试创建一个非常简单的表单,当用户输入电子邮件地址时,它会将电子邮件发送回用户。我希望消息包含我们数据库中的一些数据。 我已经能够创建一个只要我手动输入消息就可以完美工作的表单(如$message = "Hi. How you doing?"),但我似乎无法弄清楚如何合并记录集数据。我希望使用类似的东西...

<?php 
  $to = $_REQUEST['Email'] ; 
  $message = '<?php echo $row_rsPersonUser['bio']; ?>';   <<<<<<<<Line 63
  $fields = array(); 
  $fields{"Email"} = "Email"; 
  $headers = "From: noreply@domain.ca"; 
  $subject = "Thank you"; 
  mail($to, $subject, $message, $headers); 
?> 

我从中得到的是"解析错误:语法错误,意外T_STRING......在第 63 行"。 我知道它的格式错误,但我不知道为什么。 当我将其放入正文时,我想要的信息确实显示在网页上,因此我知道该部分正在工作。欢迎任何帮助。

谢谢

您不必在 PHP 代码本身中使用 PHP 开始和结束标签

$message = '<?php echo $row_rsPersonUser['bio']; ?>';   // this is wrong
            ^^^^^                                ^^ 

应该是

$message = $row_rsPersonUser['bio'];

只需更改第 63 行,如下所示。

您不能在另一个<?php块中启动一个<?php

$message = $row_rsPersonUser['bio'];

如果你这样做,它只会<?php echo…打印为文字,因为你不能将php代码作为电子邮件发送,只有html/计划文本

$message = '<?php echo $row_rsPersonUser['bio']; ?>';

应该是:

$message = $row_rsPersonUser['bio']; 

和(我测试了以下内容,看起来{}的工作,但您可能只想切换到 [] 的标准化,不确定以后是否会遇到麻烦?

寄件人: http://us1.php.net/manual/en/language.types.array.php

注意: 方括号和大括号都可以互换用于访问数组元素(例如$array[42]和$array{42}在上面的例子中都会做同样的事情)。

$fields{"Email"} = "Email";

应该是:

$fields["Email"] = "Email";

你已经在 php 代码中,不需要在变量名中添加额外的 php 开始和结束标签。与使用 $to 变量的方式类似,您可以使用 $message 变量。所以使用

$message = $row_rsPersonUser['bio']; 

它会正常工作。