2015-04-03 2 views
0

Этот код ниже не возвращает никакого значения в мою переменную $result. Соединение с базой данных является хорошим. Но он не возвращает никаких значений для переменной $result.Проблемы с выполнением mySQL-запроса с PDO

У меня есть данные в таблице player и есть 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; 
} 
+0

'var_dump ($ результат);' - что это производит? –

+0

объект (PDOStatement) # 2 (1) {["queryString"] => строка (40) "SELECT * FROM player WHERE player_id = 1"} –

ответ

1

PDO-запрос возвращает объект, а не массив.

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

Это вернет ложь на провал, так просто проверить

if ($result) { 
    ... 
+0

Ну, я буду. Я просто изучаю PDO. Я этого не знал. Я ценю вашу помощь. –

+0

Спасибо. $ result - это объект. –

Смежные вопросы