【问题标题】:Google App Engine PHP fetchAll(PDO::FETCH_ASSOC) doesn't workGoogle App Engine PHP fetchAll(PDO::FETCH_ASSOC) 不起作用
【发布时间】:2015-05-30 19:11:45
【问题描述】:

我在 Google App Engine 上部署了一个项目,该项目在调用 url 时返回 Json 对象。 我用过这段代码

fetchAll(PDO::FETCH_ASSOC);

返回在应用程序中解析时仅使用列名作为键来检索值的结果。

但是,在部署到应用程序引擎时,当调用相同的 url 时,返回的结果使用编号索引以及列名作为键,就像调用了此代码一样

//Without setting the PDO::FETCH_ASSOC fetch style which defaults to PDO::FETCH_BOTH
 fetchAll(); 

部署的项目按预期在本地开发引擎上运行,但是当部署到 Google App Engine 上时,获得了上述结果。

更新 1

我的 Google App Engine 已配置为连接到 bitbucket,因此每当我对代码进行任何更改时,我都会将其推送到 bitbucket,据我所知,App 引擎代码将自动更新,我已经检查过了它。但是当GAE从bitbucket获取代码时,我得到的结果并不是我所期望的。

但是,当我选择从 Google App Engine 启动器手动部署我的代码时,一切似乎都运行良好。当项目部署到 GAE 上时,我得到了我想要的。

在将 bitbucket 配置为 GAE 时,我有很多意想不到的结果(某些部分的切换代码不会运行)。但现在我会坚持使用 Google App Engine 启动器来部署我的代码,直到可能的解释到来。

更新 2

在 GAE 上实时调试时,在我看来,通过 bitbucket push to deploy 新添加的代码根本不存在,即使我可以在 GAE 控制台的源代码选项卡上看到已经添加的代码。例如,我添加了一个新的切换条件,但是在运行并提供适合新添加条件的正确参数时,代码根本不会执行,就好像它不存在一样。这不是真的,因为我在 GAE 控制台上查看了源代码。

小边注

在使用 bitbucket 之前,我使用谷歌应用引擎启动器来部署我的项目。我不确定这是否是 bitbucket 项目无法覆盖我使用 Google App Engine Launcher 部署的旧项目的原因。 如果我找到解决方案,我会回答我自己的问题。

确认问题

我可以确认我的 bitbucket 代码没有替换我使用 Google App Engine Launcher 部署的项目的代码。我不确定 GAE 管理控制台中浏览代码部分的问题是什么,我可以清楚地看到新代码。但是运行时,运行的代码是旧的。

【问题讨论】:

  • 请编辑您的问题,使其包括:究竟是什么不起作用?您收到错误消息吗?
  • @SteffenWinkler 给你。
  • 啊,所以你的实际问题是方法的“行为”是错误的?
  • 是的。我已经为代码设置了预期的行为。它在我的本地机器上按预期工作,但是当部署到 GAE 上时,结果与我在本地机器上看到的结果不同

标签: php google-app-engine pdo google-cloud-sql


【解决方案1】:

我错过了设置 Jenkins 的步骤,这是推送部署功能所需的。但是支持的语言不包括 PHP,所以我对此无能为力。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    • 2013-02-05
    相关资源
    最近更新 更多