【问题标题】:mysqli_query + foreach works differently in local and servermysqli_query + foreach 在本地和服务器中的工作方式不同
【发布时间】:2014-08-19 16:08:13
【问题描述】:

我想知道这个过程是否正确,但它在大多数情况下都对我有用(直到现在)。

当我想获取SQL表信息时,我曾经使用过如下代码:

if (!$db = mysqli_connect(HOST,USER,PASS,NAME)) return false;

$results = mysqli_query($db,"SELECT * FROM `table`");

foreach ($results as $result) {
    var_dump($result);
}

问题是我在 localhost 中对其进行了测试,它运行良好,我得到了我预期的结果(以 var_dump 预期的格式)。但是,对同一个数据库(但在服务器中)的相同代码和相同查询返回一定数量的 NULL(明确为“NULL NULL NULL NULL NULL”)。

localhost:mysqli - 客户端 API 库版本:5.0.10 - 20111026 - $Id:e707c415db32080b3752b232487a435ee0372157 $(来自 phpinfo)

服务器:mysqli - 客户端 API 库版本:5.5.35

问题:有人知道这是否与我的问题有关吗?

我会感谢任何形式的帮助。问候!

【问题讨论】:

  • 数据库表和列id完全一样?
  • 您还必须验证本地和远程的 php 和 mysql 库版本是否相同。?
  • 尝试使用print_r($result)。它会给你所有的字段数据。
  • PHP 版本:本地 - PHP 版本 5.4.12 服务器 - PHP 版本 5.3.10-1ubuntu3.11 关于 mysql 库版本,我认为没关系,因为我使用的是 mysqli 而不是 mysql . Rajlaksh,我在发帖之前尝试过。我希望它会给我所有的现场数据,但它没有。这把我吓坏了:)

标签: php sql mysqli localhost


【解决方案1】:

两个都试试这个:

while( $row = $results->fetch_array(MYSQLI_ASSOC) ){
    print_r($row);
}

如果还有什么不同,请告诉我们。

【讨论】:

  • 两者都有效!如果我使用 print_r 函数,两者之间没有区别。如果我使用 var_dump 函数,它在本地看起来“不错”,在服务器中看起来很原始,但这根本不重要。谢谢!!
  • 注意:我将 PHP 版本从 '5.3.10-1ubuntu3.11' 更新为 '5.4.30-1+deb.sury.org~precise+1' 现在它也适用于 foreach 方法. :)
猜你喜欢
  • 1970-01-01
  • 2013-05-06
  • 1970-01-01
  • 2014-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多