繁体   English   中英

升级到Mysql5和PHP 5.2后,mysql_query停止工作

[英]mysql_query stopped working after upgrade to Mysql5 and PHP 5.2

我找不到解决方案如何使其工作。 我将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;
     ?>

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

请加

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

在代码的开头告诉我们,确实会出现什么错误。

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

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

检查是mysql 5中的保留字,请使用反引号。

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

SET  `check`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM