【发布时间】:2016-03-10 19:55:42
【问题描述】:
我们有一个使用 pdo 代码和 mySQL 数据库的 PHP 脚本,所有这些都托管在我们的 ISP 标准 LAMP 堆栈上,运行数周后没有任何问题。 Boss 想部署到 Google App Engine 和 CloudSQL。 CloudSQL 填充了相同的数据。从本地机器上的 GAE 开发实现中运行它,指向 mySQL 和 CloudSQL,在这两种情况下都可以正常工作。
在云中将 PHP 代码部署到 GAE 并更改 pdo 连接字符串以适应 GAE 到 CloudSQL 连接时,我们收到以下错误:
致命错误:调用成员函数 fetchColumn() 非对象...
include 'database.php'; //pdo connection with try|catch confirming connection.
$pdo = Database::connect(); //No problems here. We have connection object.
$sql = "SELECT Count(CatalogID) FROM Catalog";
$rows = $pdo->query($sql)->fetchColumn(); //This is the line that throws the error.
为什么 GAE 处理方式不同?
有什么解决办法吗? (我强烈希望不要针对“从目录中选择目录 ID”调用 rowCount()。要带回的记录太多。似乎效率低下。)
【问题讨论】:
标签: php google-app-engine pdo google-cloud-sql