2017-11-04 14 views
0

symfony 3を試してみましたが、Doctrine ORMを使用してデータベースにデータを挿入しています。 私はSymfony 3 - ドライバで例外が発生しました:ドライバが見つかりませんでした

$customer = new Customer(); 
$customer->setAddress('Some Address'); 
$customer->setName('Customer 1'); 

$order->setQuantity('100'); 
$order->setDate(date('Y-m-d')); 
$order->setCustomer($customer); 

$em = $this->getDoctrine()->getManager(); 
$em->persist($customer); 
$em->persist($order); 
$em->flush(); 

私のクエリを実行しようとするが、それは例外を返します:

Uncaught PHP Exception Doctrine\DBAL\Exception\DriverException: "An exception occurred in driver: could not find driver" at /home/hei/Sites/practice/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php line 121 

Parameters.yml:

parameters: 
    database_host: 127.0.0.1 
    database_port: null 
    database_name: practice 
    database_user: root 
    database_password: null 

Config.yml

doctrine: 
    dbal: 
     driver: pdo_mysql 
     host: '%database_host%' 
     port: '%database_port%' 
     dbname: '%database_name%' 
     user: '%database_user%' 
     password: '%database_password%' 

私はまた、c拡張機能が有効になっていて、php -mとphpinfo()を使ってロードされている場合はどうかPDO & PDO_Mysqlが有効になっています。

extension=pdo.so 
extension=pdo_mysql.so 

を、私はまだ同じPDO例外を得た:

その後、php.iniで次の2行を追加します。

私のOSはUbuntuの17.1

+0

cliとwebで同じphpバージョンを使用していますか? – mleko

答えて

0

あなたはnullから3306にMySQLのポート番号を変更する必要がまず第一です。それでおしまい。 私はあなたが何も書いていない理由は、MySQLのパスワードを持っていないと思う。

良い一日を。

+0

portパラメータに "null"がある場合は、デフォルトのポート "3306"を使用していることを意味しているので、このことは考えていません問題を解決するだろう、私はphp.iniのmysqlドライバ拡張に関連する問題があると思う –

3

あなたのシステムにphp-mysqlパッケージがないと思う。コマンドを使用してパッケージをインストールしてください

sudo apt-get install php-mysql 

これで問題が解決することを願っています。

問題を解決するには、Apacheを再起動する必要があると思います。 php-mysqlをインストールした後、次のコマンドを使用してApacheを再起動してください。

sudo service apache2 restart. 
0

OSを再起動するだけで問題は解決しました。

関連する問題