2017-02-03 8 views
0

Вот мой кодВыбрать где MySQLi PHP не возвращает результат

<?php 
// create connection 
$conn = new mysqli($server_name, $user_name, $pwd, $db_name); 
// check connection 
if ($conn->connect_error) 
{ 
    die("Connection failed: " . $conn->connect_error); 
} 
echo "Connected "; 
$select_query = 'SELECT * FROM ftrpm WHERE (my_id = "" || my_id IS NULL)'; 
$selected = mysqli_query($conn, $select_query); 
var_dump($selected); 
mysqli_close($conn); 
?> 

я не получаю никаких результатов.

Connected 
object(mysqli_result)#2 (5) 
{ 
    ["current_field"]=> int(0) 
    ["field_count"]=> int(15) 
    ["lengths"]=> NULL 
    ["num_rows"]=> int(1) 
    ["type"]=> int(0) 
} 

Тот же запрос работает отлично на моем phpmyadmin. Что не так?

+0

принести свой '$ selected' первым, чтобы получить результаты (Существует одна запись' [ "num_rows"] => INT (1) 'в' $ selected' –

ответ

3

от вашего var_dump() вы видите, что есть на самом деле возвращаемые строки, вы можете сказать ["num_rows"]=> int(1) ,

Вам просто нужно получить его сначала, используя mysqli_fetch_assoc($selected);.

$selected = mysqli_query($conn, $select_query); 
$row = mysqli_fetch_assoc($selected); 
var_dump($row); 
// Can be accessed with indexes the same as the colum-name, like 
// $row['id'] 

Если у вас есть несколько строк, вы можете петлю над ними с

while ($row = mysqli_fetch_assoc($selected)) { 
    // Use $row here 
} 
+0

Спасибо. Это помогает –

+0

@RubenKannan If этот ответ решил вашу проблему, и вы считаете, что это лучший ответ, пожалуйста, примите его как решение. См. [Принимая ответы] (http://stackoverflow.com/help/accepted-answer). :-) – Qirel

+1

Я тестировал решение. Он работает, и я отметил это как ответ. еще раз спасибо –

2

mysqli_query() возвращает объект

, если вы хотите получать строки, которые вы должны использовать mysqli_fetch_array() или mysqli_fetch_assoc()

while($row = mysqli_fetch_assoc($selected){ 
    //here you can access your data one by one row 
} 
0

Вы можете получить это непосредственно от основной документации, как,

$select_query = 'SELECT * FROM ftrpm WHERE (my_id = "" || my_id IS NULL)'; 

if ($result = mysqli_query($conn, $select_query)) { 

    /* fetch associative array */ 
    while ($row = $result->fetch_assoc()) { 
     print_r($row); 
    } 

    /* free result set */ 
    $result->free(); 
} 

Попробуйте, он будет работать.

0
// create connection 
    $conn = new mysqli($server_name, $user_name, $pwd, $db_name); 
    // check connection 
    if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
    } 
    echo "Connected "; 
    $select_query = 'SELECT * FROM ftrpm WHERE (my_id = "" || my_id IS NULL)'; 
    $selected = mysqli_query($conn, $select_query); 
    while($row = mysqli_fetch_assoc($selected)) 
    { 
     var_dump($row); 
    } 
    mysqli_close($conn);