带SQL行详细信息的PHP邮件

时间:2018-08-27 02:54:38

标签: php phpmailer

我只是创建联系表单,用于登录用户。所以我必须得到他们的名字和电子邮件...在使用类选择器尝试了几个小时之后...但是在此之前,我遇到了如下错误:

  

mysqli_result类的对象无法转换为字符串

我的代码(试图转换为字符串):

     class MyClass
    {
        public $name;

        public function __construct($name)
        {
            $this->name = $name;

        public function __toString()
        {
            try 
            {
                return (string) $this->name;
            } 
            catch (Exception $exception) 
            {
                return '';
            }
        }
        }
    }
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
if($resultCheck > 0){

while($row = mysqli_fetch_assoc($result)) {

    $name = new MyClass('"'. $row['user_first'] . '"');
    $userumail = new MyClass('"'. $row['user_email'] . '"');

所以在那之后我有了:

  

语法错误,意外的“公开”

我的html邮件的一部分(因为邮件很长,我只放了1行):

<h3 style='text-align:center'>Message from: $name e-mail: $userumail></h3></br>

请给我一个建议xD

2 个答案:

答案 0 :(得分:1)

我找到了答案,所以如果有人对MAIL功能有类似的问题。 只需像这样使用mysqli:

    $result = mysqli_query($conn, $sql);
    $resultCheck = mysqli_num_rows($result);
    if($resultCheck>0){
     while($row = mysqli_fetch_assoc($result)) {
      $name = mysqli_real_escape_string($conn,$row['user_first'] );
      $userumail = mysqli_real_escape_string($conn,$row['user_email']);

之后,您将能够使用行数据作为字符串:

$message = "
<html>
<head>
<title>Some title</title>
</head>
<body>
<h3 style='text-align:center'>Message from: $name mail: $userumail</h3></br>
</body>
</html>
";

因此Mail将从数据库发送用户名和电子邮件。 :D

答案 1 :(得分:0)

我发现了错误,但不确定是否可以帮助您...

1)您的公共函数__construct($ name)没有右括号。

2)您不需要将$ row ['user_first']转换为字符串。只要将其作为字符串存储在数据库中,它就已经是字符串格式。

P.s我不太了解您的代码,认为如果您重写问题,我将能够为您提供更好的帮助。