PHP代码访问MySQL数据库不回显

时间:2018-07-29 19:13:34

标签: php mysql heroku mysqli

对不起,我想一个简单的问题。 好的,所以我尝试遵循https://www.skysilk.com/blog/2018/how-to-connect-an-android-app-to-a-mysql-database/,这是一个有关如何正确执行操作的教程。 但是,当我以他们说的方式测试我的PHP代码时,通过在浏览器中加载“ herokuserverbeingused.com/phpcode.php”,而不是得到应有的回声,我什么也没得到。 这是我的代码,实际上只是本教程中的代码稍作修改

<?php
//borrowing from don't forget to credit https://www.skysilk.com/blog/2018/how-to-connect-an-android-app-to-a-mysql-database/

$con=mysqli_connect("a heroku server.net","nope","sorry","very secret");

// Check connection
if (mysqli_connect_errno())
{
     echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$sql = "SELECT * FROM players";

// Confirm there are results
if ($result = mysqli_query($con, $sql))
{
    // We have results, create an array to hold the results
    // and an array to hold the data
    $resultArray = array();
    $tempArray = array();

    // Loop through each result
    while($row = $result->fetch_object())
    {
        // Add each result into the results array
        $tempArray = $row;
        array_push($resultArray, $tempArray);
    }

    // Encode the array to JSON and output the results
    echo json_encode($resultArray);
}

// Close connections
mysqli_close($con);
?>

我正在使用Heroku托管所有内容,因为我的教授说这将是一个好主意,是什么引起了问题?

1 个答案:

答案 0 :(得分:1)

原来的问题是$ resultArray中的内部行是stdClass对象而不是数组,解决方案是将$temparray = $row替换为$tempArray = json_decode(json_encode($row), True);

感谢Dan帮我弄清楚问题出在哪里,回答Convert stdClass object to array in PHP的人向我展示了最简单的解决方案