gpt4 book ai didi

php - 写入数据库时​​出错

转载 作者:行者123 更新时间:2023-11-29 14:18:09 28 4
gpt4 key购买 nike

我正在使用 php 将一些数据写入数据库。 99% 的情况下,数据都会正确写入数据库。但有时,空白数据会被插入到数据库中。我认为这不是我的代码的问题,因为我大多数时候都可以将数据写入数据库。

如果数据库所在的服务器的互联网连接速度较慢,或者用户的电脑的互联网连接速度较慢,会发生这种情况吗?

实际上有一个小错误。看起来空白的数据来自 session 变量。 session 变量如何有时会被清空?

这是将数据存储到 session 变量中的代码:

if(!preg_match('/^[a-zA-Z0-9._\-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/', $email))
$count = 2;
if(!preg_match('/^[A-Za-z0-9]{6}+$/',$key))
$count = 2;
if(!$count)
{
$result = mysql_query("SELECT * FROM test WHERE verify = '$key' AND email = '$email'");
$count = mysql_num_rows($result);
if($count == 1)
{
$row = mysql_fetch_row($result);
$_SESSION['id'] = $row[0];
$_SESSION['name'] = $row[1];
$_SESSION['email'] = $email;
$_SESSION['pass'] = $row[3];
$_SESSION['key'] = $key;
mysql_close();
}
}

当它发生时,所有 5 个变量 id、name、email、pass 和 key 都会变成空白。电子邮件和 key 不是从数据库中获取的。键字段仅包含字母数字内容。那么有没有办法让从数据库以及 GET 变量中获取的数据变成空白呢? (但即使这样 $count 也应该是 1)。因为,只有当$count为1时,数据才能写入新表(被清空的地方)

有两种形式。当用户完成第一个表单时,该数据将存储在表测试中,并向他们发送验证邮件。从验证链接中,我找到他们的 key 和电子邮件,并检查表测试,看看它们是否有效。如果它们有效(这意味着 $count 为 1 ),则会向用户显示一个新表单,要求他们输入更多详细信息。然后所有数据(这个新数据,以及写入表 test 的数据),应写入一个新表。

这就是出问题的地方。新数据完美写入新表。但是存储在表 test 中并复制到 session 变量的旧数据有时会变成空白。我已经在上面发布了它的代码,展示了如何设置 session 变量。

如果有人能指出我的错误,如果我的代码有问题,那将会很有帮助。

最佳答案

程序员至少有五种策略来确保数据写入数据库。

  1. 在写入之前检查变量内容是否合理。
  2. 设计数据库以拒绝不良数据。
  3. 陷阱错误。所有这些。
  4. 读回您刚刚写的内容。
  5. 写入日志文件的详细模式。

关于php - 写入数据库时​​出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12232877/

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