【问题标题】:CodeIgniter list-fieldsCodeIgniter 列表字段
【发布时间】:2012-11-20 12:10:31
【问题描述】:

我正在使用 CodeIgniter 2.1.3。我的功能有问题list_fields() 它应该返回 MySQL 结果的字段数组。所以我下面的代码应该列出 MySQL 结果的所有字段。

$query = $this->db->query("SELECT * from $tablename where REGNO='$keyword' " );
$fields  = $query->list_fields();
foreach ($fields as $f)
{
echo $f;
} 

它在 Windows 中运行良好,但在 Linux 中无法运行, 但如果结果中的行数为零,它甚至在 Linux 中也有效。

知道出了什么问题吗?

【问题讨论】:

  • 您的代码是正确的,这只能意味着您的 sql 错误,或者它没有返回任何结果。我建议展示整个功能。
  • 我的查询是 $query = $this->db->query("SELECT * from $tablename where REGNO='$keyword' " );并不是我在代码中添加了查询行。
  • 我假设你正在逃避你的$keyword。如果您在查询中不需要 '',因为 CI 中的转义方法会为您完成。可能是你的问题
  • 但 $query->result() 工作正常。还有
  • 您似乎正在尝试从结果中获取字段。在尝试访问该信息之前,您可能需要深入到 row() 级别

标签: php mysql codeigniter codeigniter-2


【解决方案1】:

尝试检查你的linux机器上你的mysql是否有错误(通常位于/var/log/mysql/error.log)。

确保您的 Linux 机器中的 PHP 和 MySQL 版本与您的 Windows 机器相同以防在特定版本中存在错误。

【讨论】:

  • php 在我的 Linux 版本中没有显示错误。我更改了 php.ini 文件,但没有影响。但后来我知道该文件有两个副本,我将它们都编辑为 display_errors = on,然后它显示了一些错误。我修好了它们。现在代码很完美,但我不明白为什么在 Linux 中出现错误的相同代码在 Windows 中也能工作?
  • @Sagar 抱歉回复晚了。不同的环境可以输出不同的结果,例如在windows上你可以读取不区分大小写的表,而在linux中你不能。某些版本的 PHP 处理特定版本的 MySQL 也存在已知错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-04
  • 1970-01-01
  • 2017-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-05
相关资源
最近更新 更多