我只是创建联系表单,用于登录用户。所以我必须得到他们的名字和电子邮件...在使用类选择器尝试了几个小时之后...但是在此之前,我遇到了如下错误:
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
答案 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我不太了解您的代码,认为如果您重写问题,我将能够为您提供更好的帮助。