Select where mysqli php 没有返回结果

Select where mysqli php not returning result

这是我的代码

<?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 上工作得很好。怎么了?

mysqli_query()returns一个对象

如果要获取行,则必须使用 mysqli_fetch_array()mysqli_fetch_assoc()

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

从您的 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
}
// 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);