【问题标题】:What changes do i need to do in my code to in php for mysql to PostgreSQL? [duplicate]我需要在我的代码中对 php for mysql 到 PostgreSQL 进行哪些更改? [复制]
【发布时间】:2022-01-26 22:22:57
【问题描述】:
  $result=mysqli_query($conn, $Sqlquery);
 $data_new=array();
 foreach($result as $row){
     $data_new[]=$row;
 }

echo json_encode($data_new,JSON_NUMERIC_CHECK);

我使用上面的代码在 mysql 中得到了结果,但在 PostgreSQL 中没有。我也从 mysqli_query 更改为 pg_query

$rs=pg_query($conn, $Sqlquery);
$data_new=array();
while ($row = pg_fetch_row($rs)) {
    $data_new[]=$row;
  }
  


echo json_encode($data_new,JSON_NUMERIC_CHECK);

但我的数组中什么也没有。请帮忙

【问题讨论】:

  • $Sqlquery 的值是多少?
  • 另外,只是想一想,你真的填充了新的 Postgres 数据库吗?
  • $Sqlquery="SELECT COUNT(id) AS totalusers, ROUND(COUNT(id)/$numOfDays_interval,2) AS avgusers, FROM_UNIXTIME(timecreated,'%Y-%m-%d') AS users_date FROM view_lastaccess where FROM_UNIXTIME(timecreated) >= '$time_from' AND FROM_UNIXTIME(timecreated)
  • 请将事实(尤其是代码)添加到问题文本中(格式正确),而不是 cmets。

标签: php mysql ajax postgresql


【解决方案1】:

查看您在 cmets 中回答我的问题的查询,您似乎将无效查询传递给 Postgres。

如果您正确地检查和处理错误,您会发现 FROM_UNIXTIME() 在 PG 的 SQL 方言中不存在,因此您需要找到替代方案并调整您的查询以使其兼容。

This question 可能会有一个你可以使用的替代品,特别是this answer,它建议使用to_timestamp - 尽管你需要确保你的列类型是兼容的(我只能猜测你是什么'重新使用),尽管我确信这是罪魁祸首)。

【讨论】:

  • 是的,谢谢,这是罪魁祸首,我将其修改为 to_timestamp 并通过在数据库中运行成功获取结果,但现在需要使用 postgresql php 获取记录,因为我使用的是 mysqli。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多