PHP无法登录mysql或响应


php not logging into mysql or responding

我有一个php脚本,它将不会返回任何东西,除了"Hello"。

<?php
echo "Hello";
$username = "me";
$password = "password";
$hostname = "localhost";
$dbname = "dbname";
//connection to the database
$dbhandle = new mysqli($hostname, $username, $password, $dbname)
  or die("Unable to connect to MySQL");
echo "logged in";
// Sanitize variable
$user_id = intval($_GET['user_id']);
//update likes on specific id
$result = mysqli_query($dbhandle, "SELECT user_score FROM users WHERE id = '$user_id'")
  or die("Unable to query");
// Send back the score
$return = array();
while ($row = mysqli_fetch_assoc($result)) {
        $return[] = $row;
}
print json_encode($return);
//close the connection
mysqli_close($dbhandle);
?>

我之前有这个脚本工作,然后我把它移动到另一个实例。我知道我可以用我的凭据登录mysql,并检查我有所有的特权,我知道我的用户名和密码是正确的。有什么我需要改变在我的php?或者我需要做些什么,这样当我通过浏览器访问时,它会显示为打开服务器?

我没有任何返回除了你好,它甚至没有告诉我"无法连接"。这让我很困惑。我至少应该看到"已登录"或"无法连接",对吧?

你混合了面向对象和过程的mysqli函数。当使用mysli构造函数时,即使失败也会返回对象,因此不会显示错误。

使用下面的代码来连接数据库:

$dbhandle = mysqli_connect($hostname, $username, $password, $dbname) or die("mysqli_connect failed");

查看mysli -documentation获取更多信息

由于PHP中的error_reporting设置,您可能无法获得任何输出。第一步是在php.inierror_reporting = E_ALL中设置display_errors = On。这将显示所有错误,您将从上面的代码片段中获得更多信息。还可以在PHP文件本身中设置error_reporting级别,方法是在文件的顶部添加这一行:error_reporting(-1);

关于error_reporting的更多信息请点击这里