0

我找不到如何让它工作的解决方案。我将 Mysql 4 升级到 Mysql 5 并将 PHP 更改为 5.2,因为我无法激活帐户和登录。这段代码有什么问题?

    include_once("conn.php");
    $check_num = $_GET['c'];

    $exists ="SELECT * FROM registry WHERE check = '$check_num'";

    $eresult = mysql_query($exists);

    if (!$eresult) 
    {
        die('<p>Error performing query: ' . mysql_error() . '</p>');
    }
    $row =  mysql_fetch_array($eresult);
    $key = $row['regkey'];
    $name = $row['title'] . ' ' . $row['name'] . ' ' . $row['surname'];
    $user = $row['username'];

    if (mysql_num_rows($eresult) == 1) 
    {
        $selected = mysql_query($eresult);
        $sql = " UPDATE registry 
                        SET check = 'ok'
                        WHERE regkey = $key";

        $result = mysql_query($sql);
        if (mysql_affected_rows() == 1)
            {
                $message = "The account $user has now been activated.";
                echo "<script type=\"text/javascript\">
            alert('The account $user has now been activated.');
            </script>
            <script>document.location.href='../index.php'</script>";

            }
        }
        else
        {
            $message = "There was a problem with your check value, please try copy and pasteing the URL again. ";
        }
    echo $message;
     ?>
4

3 回答 3

1

没有看到任何错误消息,我猜这是因为 mysql_ 扩展名已经被弃用了一段时间。在最近的版本中,mysql 扩展已从默认的 php 安装中完全删除。您应该尝试使用 mysqli_ 或 PDO_ 扩展名。

于 2013-10-30T23:42:17.483 回答
0

请加

error_reporting(E_ALL); 
ini_set("display_errors", 1); 

在您的代码开头并告诉我们,确实出现了哪些错误。

有了这些附加信息,我们可能会提供更多帮助。

附加提示:如果您不仅更新了 PHP/mySQL,还更新了XAMPP,请查看新php.ini文件。您可能需要更改一些设置。

于 2013-10-30T23:08:07.930 回答
0

check 是 mysql 5 中的保留字,使用反引号。

http://dev.mysql.com/doc/mysqld-version-reference/en/mysqld-version-reference-reservedwords-5-5.html

SET  `check`
于 2013-10-30T23:11:09.407 回答