SQL数组var_dump什么都没显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL数组var_dump什么都没显示相关的知识,希望对你有一定的参考价值。

我有一些加载营业时间的代码。我的数据库看起来像

id - int(11)
day - varchar(255)
starttime - (time)
endtime - (time)
date - (date)
type - int(1)

我尝试获取数据:

if ($conn->connect_error) 
    die("Connection failed: " . $conn->connect_error);
 
echo "Connected successfully";

function get_all_records($sql)
    global $conn;

    $result = $conn->query($sql);
    $result = [];
    while($row = $result->fetch_assoc()) $result[array_shift($row)] = $row;
    return $result;


$sql = "SELECT day, starttime, endtime FROM schedule WHERE type =  ";

$shop_hours = array_merge(
    get_all_records($sql . "0 ORDER BY id"),
    get_all_records($sql . "1 and YEARWEEK('DATE') = '201915'")
);


var_dump ($shop_hours);
?>

只有显示的内容才能成功连接

我看不出问题:(

答案

您使用空数组覆盖结果变量。您应该更改此数组的名称:

$result = [];
另一答案

我在第14行发现了这个问题

while($ row = $ query-> fetch_assoc())$ result [array_shift($ row)] = $ row;

    <?php    
$conn = new mysqli($dbhost, $dbusername, $dbpassword, $dbname);

if ($conn->connect_error) 
    die("Connection failed: " . $conn->connect_error);
 
echo "Connected successfully";

function get_all_records($sql)
  global $conn;

  $query = $conn->query($sql);
  $result = [];
  while($row = $query->fetch_assoc()) $result[array_shift($row)] = $row;
  return $result;


$sql = "SELECT day, starttime, endtime FROM schedule WHERE type = ";
$shop_hours = array_merge(
  get_all_records($sql . "0 ORDER BY id"),
  get_all_records($sql . "1 and YEARWEEK('DATE') = '201915'")
);

var_dump($shop_hours);
?>

以上是关于SQL数组var_dump什么都没显示的主要内容,如果未能解决你的问题,请参考以下文章

PHP 的替代 var_dump 允许限制嵌套数组的深度

PHP常见的输出语句 echo()print()print_r()var_dump()pinrtf()之间的区别

var_dump、var_export 和 print_r 之间的区别

php var_dump() 与 print_r()

如何让 xdebug var_dump 显示完整的对象/数组

PHP中var_dump是啥意思