У нас был PHP-скрипт с использованием кода pdo с базой mySQL, размещенной в нашем стандартном стеке LAMP, без каких-либо проблем после запуска в течение нескольких недель. Босс хочет разворачиваться в Google App Engine и CloudSQL. CloudSQL заполняется теми же данными. Исправлено из реализации GAE dev на локальной машине, указывающей на mySQL и CloudSQL, и отлично работает в обоих случаях.PHP pdo fetchColumn() не работает специально для Google App Engine
После развертывания PHP код GAE в облаке и изменение строки соединения PDO, чтобы обеспечить возможность подключения GAE-к-CloudSQL мы получаем следующее сообщение об ошибке:
Fatal error: Call to a member function fetchColumn() on a non-object...
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 по-разному?
Любые решения? (Я бы предпочел не вызывать rowCount() в отношении «Select CatalogID from Catalog». Слишком много записей для возврата. Кажется неэффективным.)