我在您发起电子邮件会话时尝试创建系统 然后发送到用户创建帐户的电子邮件。我'米 有一个我试图解决的错误,但我无法解决。这是
错误:
注意:数组转换为字符串 第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>
答案 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"];