问题 运行 mySQL 使用 PDO 的查询

Problems running a mySQL query with PDO

下面的这段代码没有向我的 $result 变量返回任何值。数据库连接良好。但它似乎没有返回 $result 变量的任何值。

我确实在 player table 中有数据并且在所述 table 中有一个 player_id 值 1 和 2。

运行时回显的打印输出是这样的。将整数 1 和 2 传递给函数时。

数据库已连接

SELECT * 
FROM player 
WHERE player_id = 1

结果不是数组。

数据库已连接

SELECT * 
FROM player 
WHERE player_id = 2

结果不是数组。

function displayName($player_id)
{
    // setting database variables
    $dsn = 'mysql:dbname=dbName;host=localhost';
    $username = "username";
    $password = "password";

    // try to make connection
    try 
    {
        $conn = new PDO($dsn, $username, $password);
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        echo "Database connected <br>";
    }
    catch(PDOException $e)
    {
        echo "Error: " . $e->getMessage();
    }

    //  create, print, and execute the query
    $sql = "SELECT * FROM player WHERE player_id = $player_id";
    echo "$sql <br>";
    $result = $conn->query($sql);

    //if the query returned an array
    if (is_array($result))
    {
        // if the array has data
        if ($result->num_rows > 0)
        {
            Echo "Result is an array and has values. <br>";
            Echo "$result[0] $result[1]. <br>";
            return $result;
        }
        else
        {
            echo "No results. <br>";
        }
    }
    else
    {
        echo "Results not an array. <br>";
    }
    //close the database connection.
    $conn = null;
}

PDO 查询return是一个对象,而不是数组。

http://php.net/manual/en/pdo.query.php

它会 return 失败所以检查

if ($result) {
   ...