PHP脚本在WAMP上执行,但在Linux服务器上不执行

时间:2015-12-13 20:08:20

标签: php linux mysqli wamp

我创建了一个脚本来处理我的电子邮件确认作为注册的最后一步。 用户单击发送到其电子邮件的链接。 该链接由http://domain.com/?register=somecode构建 然后奇怪的是它可以在我的本地机器上运行,但不能在我的服务器(linux)上运行。 我也尝试过切换php.ini,但它没有用。

提前致谢。

激活码: (你可以看到我做了一些回声,我发现我的脚本在回显3后停止,所以我认为绑定不起作用)

if(isset($_GET['register'])){
    //include "includes/functions/sql_functions.php";
    include "PROPERTIES_ENG.php";
    //$sql = new sql();
    //activateAccount($_GET['register']);
    $code = $_GET['register'];
    $mysqli = new mysqli("****", "****", "****", "****");
    echo "1 <br />";
        if( $code && $stmt = $mysqli->prepare("SELECT * FROM USERS WHERE email_code =?")){
            $stmt->bind_param( "s", $code );
            echo "2";
            $stmt->execute();
            echo "3";
            $stmt->bind_result($name, $surname, $email, $username, $password, $id, $ecode);
            echo "4";
            $stmt->fetch();
            echo $name;
            echo $id;
        }
        // Set activation to true
        $val = "true";echo "10 <br />";
        $mysqli = new mysqli("*****", "****", "****", "****");echo "11 <br />";
        if(mysqli_connect_errno()){
            printf("Connect failed: %s\n", mysqli_connect_error());echo "12 <br />";
            exit();
        }

        if($stmt = $mysqli->prepare("INSERT INTO VALIDATION (USER_ID, VALIDATED) VALUES (?, ?)")){
            $stmt->bind_param("ss", $id, $val);

            if(!$stmt->execute()){
                return $mysqli->error;
            }
            $stmt->close();
        }else{
            return $mysqli->error;
        }
}

1 个答案:

答案 0 :(得分:1)

据我所知,bind_result()函数不能与带有通配符(*)的SQL查询一起使用。在您的情况下,您可以重构您的SQL查询传递列名而不是通配符,或者尝试使用get_result()函数。

有关更具描述性的示例,请查看此answer