Php 更新查询未在MySQL数据库中设置值

Php 更新查询未在MySQL数据库中设置值,php,mysql,sql,Php,Mysql,Sql,我有下面的脚本作为密码忘记系统的一部分运行。除了没有使用“令牌”更新数据库之外,一切似乎都很正常。由于其他一切都正常工作(即$str正在设置并用于通过电子邮件发送的URL)。。。我想这一定是更新脚本的问题,但我不明白为什么。下面是我的代码,非常感谢大家的帮助 if(isset($_POST["sign"])){ include('connections/conn.php'); $email = mysqli_real_escape

我有下面的脚本作为密码忘记系统的一部分运行。除了没有使用“令牌”更新数据库之外,一切似乎都很正常。由于其他一切都正常工作(即$str正在设置并用于通过电子邮件发送的URL)。。。我想这一定是更新脚本的问题,但我不明白为什么。下面是我的代码,非常感谢大家的帮助

if(isset($_POST["sign"])){
                include('connections/conn.php');

                $email = mysqli_real_escape_string($conn, $_POST["email"]);

                $data = $conn->query("SELECT id FROM travisor_tradesperson WHERE email='$email'");

                if ($data-> num_rows > 0) {
                    $str = "0123456789qwertyuiopasdfghjklzxcvbnm";
                    $str = str_shuffle($str);
                    $str = substr($str, 0, 10);
                    $url = "http://rhamilton461.web.eeecs.qub.ac.uk/travisor/passReset.php?token=$str&email=$email";

                    mail($email, "Reset Password", "To reset your password please visit: $url" , "From: rhamilton461@qub.ac.uk\r\n");

                    $conn->query("UPDATE travisor_tradesperson SET token = '$str' WHERE email='$email'");

                    echo "Please check your email.";

                } else {
                    echo "Please check your inputs.";
                }
            }

尝试通过注释mail函数的调用语句来运行脚本。 您的表可能没有更新,因为mail函数中有错误。
您是否以“请检查您的电子邮件”的形式获得输出???

了解防止sql注入的准备好的语句。打印出该语句并在mysql控制台中尝试,或者检查是否所有值都设置为预期值如果您费心检查sql查询是否成功并打印出错误消息(如果不是出于质疑目的),您就不必问这个问题……sql很好,我改为使用mysqli_查询,现在它似乎可以工作了。谢谢。这看起来更像是一个评论,而不是一个实际的答案。