我已经阅读了几个关于通过 Heroku 使用 ClearDB 的问题,但没有一个提供足够的指导来解决我的问题。
所以,我的问题...
目前我已经部署了一个 PHP 应用程序,除了我将在下面放置的代码之外,它基本上是空的。基本上,我正在尝试使用Herrera\PDOServiceProvider()
连接到我读过的 ClearDB 是可能的。此外,它与 Heroku PHP 教程基本相同,只是使用 ClearDB 和 Postgre。
我在某处遇到错误,因为我得到一个空白页。本教程显示我应该看到一个单词“hello”,它现在已经消失了。
<?php
require('../vendor/autoload.php');
use Herrera\Pdo\PdoServiceProvider;
use Silex\Application;
$app = new Application();
$app['debug'] = true;
// Register the monolog logging service
$app->register(new Silex\Provider\MonologServiceProvider(), array(
'monolog.logfile' => 'php://stderr',
));
// Our web handlers
$app->get('/', function() use($app) {
$app['monolog']->addDebug('logging output.');
return 'Hello';
});
$dbopts = parse_url(getenv('DATABASE_URL'));
//print_r(array_values($dbopts));
$app->register(new PdoServiceProvider(),
array(
'pdo.dsn' => 'mysql:dbname='.ltrim($dbopts["path"],'/').';host='.$dbopts["host"],
'pdo.port' => $dbopts["port"],
'pdo.username' => $dbopts["user"],
'pdo.password' => $dbopts["pass"]
)
);
$host = $app['pdo.dsn.host'];
$dbname = $app['pdo.dsn.mysql:dbname'];
$user = $app['pdo.username'];
$pass = $app['pdo.password'];*/
$pdo = new PDO("mysql:host='.$host.'; dbname='.$dbname.';", $user, $pass);
$statement = $pdo->query("SELECT title FROM news");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['title']);
app->run();
我不确定到底出了什么问题,但我知道它与 db 连接有关,因为当我将其注释掉时,“Hello”一词会显示在我的远程站点上。
任何帮助表示赞赏。谢谢你。