首页 > 解决方案 > 确保电子邮件存储为字符串 [Raku]

问题描述

不知道如何关闭它,但我也不能再删除它...问题已解决

我有一个表单,用户输入电子邮件,CRO 尝试在帐户数据库中查询电子邮件以查找匹配项。问题是 Sqlite3 将 @ 符号视为运算符并给出错误。如果我将其声明为字符串,它会起作用,但我如何在 Routes.pm6 中做到这一点?这是我正在处理的代码块。

post -> 'reset' {
        request-body -> (:$email) {
        #Check to see if email exists in accounts
        #If Exists then send email
        #If not exists post email not found

                $sth = $dbh.prepare(q:to/STATEMENT/);
                select email from accounts WHERE email = (?) 
                    STATEMENT

        # $email = $email.Str
        my $results = $sth.execute("$email");

        if $results == 1 {
            content 'text/html','Successful Email sent' ~ '<br><a href="/">Home</a>';
        } else {
            content 'text/html', "Email does not exist";
        }
        }
    }

我尝试了各种方法,例如在请求正文中添加 Str 或在随机位置添加 .Str 。我也尝试过添加引号。这是html文件:

<DOCTYPE html>
<html lang="en">
<head>
    <title>Reset Password</title>
</head>
<body>
    <form action="/reset" method="post">
      Email:<br>
      <input type="text" name="email">
      <br>
      <input type="submit" value="Submit">
      </form>
      <br>
      <a href="register.html">Create an Account</a>
      <a href="signin.html">Sign In</a>
      <br>
      <a href="/">Home</a>
</body>
</html>

我想说的是:如何确保用户输入的内容是字符串,然后在 sqlite3 中作为字符串进行查询?

标签: sqliterakucro

解决方案


推荐阅读