Heroku 找不到 PDOServiceProvider
Heroku can't find PDOServiceProvider
所以我遵循了 heroku 提供的关于如何部署 php 应用程序的教程 https://devcenter.heroku.com/articles/getting-started-with-php#introduction
一切正常,除了我开始设置数据库时。起初我尝试在网上寻找不同的解决方案(即),但似乎没有用。
现在,我的代码如下所示:
<?php
use Csanquer\Silex\PdoServiceProvider\Provider\PDOServiceProvider;
//use Silex\Application;
$dbopts = parse_url(getenv('DATABASE_URL'));
$pdo = new PDOServiceProvider('pdo');
//$app = new Application();
$app->register($pdo,
array(
'pdo.server' => array(
'driver' => 'pgsql',
'user' => $dbopts["user"],
'password' => $dbopts["pass"],
'host' => $dbopts["host"],
'port' => $dbopts["port"],
'dbname' => ltrim($dbopts["path"],'/')
)
)
);
?>
我收到以下消息:
Uncaught Error: Class 'Csanquer\Silex\PdoServiceProvider\Provider\PDOServiceProvider' not found in /app/web/index.php:6
我该如何解决?
希望您以前使用过 Composer,如果没有,请告诉我。尝试使用你的作曲家安装 Doctrine DBAL:
composer require "doctrine/dbal:~2.5"
安装 Doctrine 后,您可以使用以下代码行:
$config = new \Doctrine\DBAL\Configuration();
$connParams = array(
'driver' => #driver -> pdo_mysql,
'dbname' => #dbname,
'host' => #host -> localhost,
'user' => #user,
'password' => #password,
'charset' => #charset -> utf8
);
$conn = \Doctrine\DBAL\DriverManager::getConnection($connParams, $config);
您现在可以使用类似的东西:
$conn->query(#SomeSQL)
$conn->prepare(#SomeSQL)
或者以您喜欢的方式:
$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
'db.options' => array(
'driver' => #driver -> pdo_mysql,
'dbname' => #dbname,
'host' => #host -> localhost,
'user' => #user,
'password' => #password,
'charset' => #charset -> utf8
),
));
您现在可以使用类似的东西:
$app['db']->query(#someSQL);
有关 Doctrine DBAL 的更多信息,请参阅页面 here or here。请让我知道这是否对您有帮助! (通过将问题标记为已完成或评论新错误)。
希望您以前使用过 Composer,如果没有,请告诉我。尝试使用您的作曲家安装 Doctrine DBAL:
composer require "doctrine/dbal:~2.5"
安装 Doctrine 后,您可以使用以下代码行:
$config = new \Doctrine\DBAL\Configuration();
$connParams = array(
'driver' => #driver -> pdo_mysql,
'dbname' => #dbname,
'host' => #host -> localhost,
'user' => #user,
'password' => #password,
'charset' => #charset -> utf8
);
$conn = \Doctrine\DBAL\DriverManager::getConnection($connParams, $config);
您现在可以使用类似的东西:
$conn->query(#SomeSQL)
$conn->prepare(#SomeSQL)
或者以您喜欢的方式:
$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
'db.options' => array(
'driver' => #driver -> pdo_mysql,
'dbname' => #dbname,
'host' => #host -> localhost,
'user' => #user,
'password' => #password,
'charset' => #charset -> utf8
),
));
您现在可以使用类似的东西:
$app['db']->query(#someSQL);
有关 Doctrine DBAL 的更多信息,请参阅此处或此处的页面。请让我知道这是否对您有帮助! (通过将问题标记为已完成或评论新错误)。
所以我遵循了 heroku 提供的关于如何部署 php 应用程序的教程 https://devcenter.heroku.com/articles/getting-started-with-php#introduction
一切正常,除了我开始设置数据库时。起初我尝试在网上寻找不同的解决方案(即
现在,我的代码如下所示:
<?php
use Csanquer\Silex\PdoServiceProvider\Provider\PDOServiceProvider;
//use Silex\Application;
$dbopts = parse_url(getenv('DATABASE_URL'));
$pdo = new PDOServiceProvider('pdo');
//$app = new Application();
$app->register($pdo,
array(
'pdo.server' => array(
'driver' => 'pgsql',
'user' => $dbopts["user"],
'password' => $dbopts["pass"],
'host' => $dbopts["host"],
'port' => $dbopts["port"],
'dbname' => ltrim($dbopts["path"],'/')
)
)
);
?>
我收到以下消息:
Uncaught Error: Class 'Csanquer\Silex\PdoServiceProvider\Provider\PDOServiceProvider' not found in /app/web/index.php:6
我该如何解决?
希望您以前使用过 Composer,如果没有,请告诉我。尝试使用你的作曲家安装 Doctrine DBAL:
composer require "doctrine/dbal:~2.5"
安装 Doctrine 后,您可以使用以下代码行:
$config = new \Doctrine\DBAL\Configuration();
$connParams = array(
'driver' => #driver -> pdo_mysql,
'dbname' => #dbname,
'host' => #host -> localhost,
'user' => #user,
'password' => #password,
'charset' => #charset -> utf8
);
$conn = \Doctrine\DBAL\DriverManager::getConnection($connParams, $config);
您现在可以使用类似的东西:
$conn->query(#SomeSQL)
$conn->prepare(#SomeSQL)
或者以您喜欢的方式:
$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
'db.options' => array(
'driver' => #driver -> pdo_mysql,
'dbname' => #dbname,
'host' => #host -> localhost,
'user' => #user,
'password' => #password,
'charset' => #charset -> utf8
),
));
您现在可以使用类似的东西:
$app['db']->query(#someSQL);
有关 Doctrine DBAL 的更多信息,请参阅页面 here or here。请让我知道这是否对您有帮助! (通过将问题标记为已完成或评论新错误)。
希望您以前使用过 Composer,如果没有,请告诉我。尝试使用您的作曲家安装 Doctrine DBAL:
composer require "doctrine/dbal:~2.5"
安装 Doctrine 后,您可以使用以下代码行:
$config = new \Doctrine\DBAL\Configuration();
$connParams = array(
'driver' => #driver -> pdo_mysql,
'dbname' => #dbname,
'host' => #host -> localhost,
'user' => #user,
'password' => #password,
'charset' => #charset -> utf8
);
$conn = \Doctrine\DBAL\DriverManager::getConnection($connParams, $config);
您现在可以使用类似的东西:
$conn->query(#SomeSQL)
$conn->prepare(#SomeSQL)
或者以您喜欢的方式:
$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
'db.options' => array(
'driver' => #driver -> pdo_mysql,
'dbname' => #dbname,
'host' => #host -> localhost,
'user' => #user,
'password' => #password,
'charset' => #charset -> utf8
),
));
您现在可以使用类似的东西:
$app['db']->query(#someSQL);
有关 Doctrine DBAL 的更多信息,请参阅此处或此处的页面。请让我知道这是否对您有帮助! (通过将问题标记为已完成或评论新错误)。