0

我有以下脚本,它在我的本地机器(XAMPP v3.1.0 php v.5.4.7)上运行良好,但是当我上传到我的网络服务器(Bluehost php v5.4.13)时它不起作用。

我的表格很好,我提供的数据是有效的。

// Connect to DB
$mysqli = new mysqli("localhost","{USER_NAME}","{PASSWORD}","{TABLE_NAME}");
// Escaped post variables before SQL lookup
    // $email is valid -  "john@john.com";
$escapedEmail = $mysqli->real_escape_string($email);
$retrievedPassword = "";
$getUserPasswordQuery = "Select * FROM User Where Email='{$escapedEmail}'";
$loggedInUser = null;


if ($getUserPasswordResult = $mysqli->query($getUserPasswordQuery);)
{
    echo "GOT HERE";
    // Query was successful
}
$getUserPasswordResult->free(); // Line 66 (See below)

没有收到 echo 语句,但我日志中收到以下内容(如果查询不起作用,这是可以理解的)。

Call to a member function free() on a non-object in .../script.php on line 66

任何人都可以阐明这一点以及为什么它可以在本地服务器上工作而不是在野外。另外,我这样做是正确的方式还是有更防弹的范例?

谢谢!

4

1 回答 1

0

您在free测试之外调用以查看该变量是否定义正确:

if ($getUserPasswordResult = $mysqli->query($getUserPasswordQuery);)
{
    echo "GOT HERE";
    // Query was successful
    $getUserPasswordResult->free(); // Line 66 (See below)
}
于 2013-04-17T18:55:56.733 回答