gpt4 book ai didi

PHP : Function that recognizes data successfully stored in database

转载 作者:行者123 更新时间:2023-11-29 14:04:41 24 4
gpt4 key购买 nike

我试图在 PHP 中找到一种方法,一旦数据成功存储在数据库中,在本例中是注册数据,PHP 有一种方法可以识别这一点,也许可以使用一个函数,然后可以执行下一个过程,例如加载一个页面,其中包含指向用户电子邮件的链接以进行帐户验证。另外,在加载该页面时, header() 是最好的方法。我有一种隐秘的感觉, session 可能是正确的选择。无论如何,我们非常感谢所有建议:))))))

我遇到的问题是我想在特定点执行 header (),并且我已经编写了以下代码来执行此操作:

         $rowcount = $statement->rowCount();
if ($rowcount === 1){
header('Location:verifyemail.php');
}

我发现这段代码作为我正在使用的 PDO 类的一部分,可以检查 MySql 数据库中的行是否刚刚通过 $statement->execute(); 进行了更新;但是,由于已经有输出, header 将无法工作,我收到此错误:无法修改 header 信息 - header 已发送(输出开始于......但是如果我将 header() 放在输出之前,我会收到此错误:PHP fatal error :在非对象上调用成员函数 rowCount()......我需要根据成功的数据库事务来重定向页面,但在我想要执行该操作时已经有输出......我见过一个 JS 解决方案,但是如果关闭,该网站基本上将无法正常运行......

最佳答案

如果无法存储数据,数据库通常会返回错误。当使用PDO时你可以这样做:

$db = new PDO(...);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$stmt = $db->prepare('INSERT INTO table (column) VALUES (?)');
$stmt->execute(array('something'));
doSomethingWhenInsertWasSuccessful();
}
catch (PDOException $e) {
doSomethingBecauseInsertWasNotSuccessful();
}

您可以安全地将 header()-redirect 放入 doSomethingWhenInsertWasSuccessful() 函数中。除非您的应用程序事先写入任何输出,否则这没有理由不起作用。

关于PHP : Function that recognizes data successfully stored in database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14553499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com