0

在 PHP 中有一个简单的表单,其中包含 1 个字段,必须对其进行验证,并且从两侧剥离其字符串。从字符串中,我保留某些字符并希望匹配这个剥离的字符串是否在 mysql DB 中。如果它存在于数据库中,那么我将字符串输入数据库到另一个表,如果不存在,我将其丢弃。

问题是目前我输入的所有内容都由 if 语句验证为 true 并插入到数据库中。它只需要在 if 语句为真时插入,而不是每次都插入。我让它在没有剥离字符串的情况下工作,但是当我从垃圾中剥离字符串时,我无法让它再次工作......

这是带有字符串条的代码,它验证所有内容为真

    ...
    $txt=substr($_POST[ZZ_ID],12,-1);

    $test = mysql_query("SELECT ZZcode FROM ZZcodes WHERE ZZcode='$txt'");
    $row = mysql_fetch_array($test);

    if ($row['ZZcode']== $txt)         
    $sql="INSERT INTO Data
    VALUES
    ('$_POST[ZZ_ID]','$_POST[ID]', TIMESTAMP(8))";
    else
            echo "ZZ code error";
            echo "<br />";
            echo $txt;
     if (!mysql_query($sql,$con))
     {
      die('Error: ' . mysql_error());
              }
    mysql_close($con)
    ...

这是没有字符串条的代码块,它有效:

    ...
    $test = mysql_query("SELECT ZZcode FROM ZZcodes WHERE ZZcode='$_POST[ZZ_ID]'");
    $row = mysql_fetch_array($test);

    if ($row['ZZcode']== $_POST[ZZ_ID])
    $sql="INSERT INTO Data
    VALUES
    ('$_POST[ZZ_ID]','$_POST[ID]', TIMESTAMP(8))";
    else
            echo "ZZ koodi ei saa sisestada";
            echo "<br />";
     if (!mysql_query($sql,$con))
     {
      die('Error: ' . mysql_error());
              }
    mysql_close($con)
    ...
4

2 回答 2

0

var_dump($_POST[ZZ_ID])在你设置之前$txt=substr($_POST[ZZ_ID],12,-1);

然后var_dump($txt)

我认为该substr()功能是您的问题!

于 2012-06-05T13:17:26.827 回答
0

如果您想比较字符串,我建议您使用字符串比较函数,例如 strcmp。要了解有关 strcmp 的更多信息,请访问strcmp - PHP 手册

如果两个字符串相等,此函数将返回 0。此比较区分大小写。

于 2012-06-05T13:38:04.763 回答