将电子邮件发送到从数据库检索的电子邮件地址通过PHP

时间:2016-10-26 10:55:55

标签: php sql

我在您发起电子邮件会话时尝试创建系统  然后发送到用户创建帐户的电子邮件。我'米  有一个我试图解决的错误,但我无法解决。这是

  

错误:

     

注意:数组转换为字符串   第37行的C:\ xampp \ htdocs \ LoginSystem \ index.php

     

致命错误:调用未定义的方法PDOStatement :: fetch_assoc()in   第42行的C:\ xampp \ htdocs \ LoginSystem \ index.php

我对php很新,并且一直在使用代码段,但显然不是  正确应用它们。

感谢任何帮助,提前致谢。

<?php

require 'assests/database.php';

session_start();


?>

<!DOCTYPE html>
<html>
<head>
<title>Welcome to your web app</title>
<link rel="stylesheet" stype="text/css" href="assests/style.css">
<link href="https://fonts.googleapis.com/css?family=Comfortaa" rel="stylesheet">
</head>
</head>



<body>


<div class="header">
  <a href="index.php"> Your App Name</a>
</div>  


<?php if( isset($_SESSION['user_id']) ): ?>



<?php



    $sql = 'select email from noodles_gamification where ID = "'.$_SESSION['user_id'].'"';

    $result = $conn->query($sql);
    $email = "";
    // output data of each row
    while($row = $result->fetch_assoc()) {
        $email = $row["email"];
    }


    /*
    $recipients = array();
    while($row = mysql_fetch_array($stmt)) {
        $recipients = $row[0]['email'];
    } */

    $to = $email;
    $subject = "E-mail subject";
    $body = "E-mail body";
    $headers = "From: noreply@prakashsoft.esy.es" ;

    mail($to, $subject, $body, $headers);








?>



<br /> Welcome you are succesfully loggin in!

<a href="assests/logout.php">Logout?</a>
<?php else : ?>



<h1>Please login or register</h1>
<a href="assests/login.php">login</a> or 
<a href="assests/register.php">Register</a>


<?php endif; ?>


</body>
</html>

1 个答案:

答案 0 :(得分:0)

您的第一条NOTICE消息说明您尝试将array转换为string。您的会话似乎包含一个数组。

错误消息显示PDOStatement::fetch_assoc()不存在。 您要查找的方法是PDOStatement::fetch(),请参阅http://php.net/manual/de/pdostatement.fetch.php

由于您只想获得一个电子邮件地址(我认为您表中的ID是唯一的),因此您不需要任何循环。 因此,您可以将while循环替换为:

$row = $result->fetch(PDO::FETCH_ASSOC);
$email = $row["email"];