看板 PHP 關於我們 聯絡資訊
我的Laravel 同時使用了mongoDB和MySQL 兩個資料庫 兩個資料庫如果是在一般的Controller 或者router 都可以正常存取 另外 我的Queue是用Job排程到redis裡面後 過一段時間再進行工作 Queue的工作只要沒有牽涉到資料庫存取 都可以正常運作 不過一但我把有存取資料庫這個步驟的程式碼放到Job裡面去Queue就不一樣了 如果是mySQL , Log就會記錄這個問題 [2018-10-17 18:10:39] local.ERROR: PDOException: could not find driver in /var/www/html/laravel/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:40 如果是MongoDB 就會記錄這個問題 [2018-10-17 13:37:48] local.ERROR: MongoDB\Driver\Exception\InvalidArgumentException: Failed to parse MongoDB URI: 'mongodb://mongo:tcp://172.17.0.4:27017'. Invalid host string in URI. in /var/www/html/laravel/vendor/mongodb/mongodb/src/Client.php:83 我本來是想說用Job 呼叫static function,會出現這問題,後來又嘗試把程式碼直接放到Job裡面,也不行 我有use DB的相關namespace 所以我想應該不是use方面的問題 我不懂的地方是,Queue可以單獨work ,DB可以單獨work 但是兩個湊在一起就沒辦法 為啥 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.176.128.70 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1539833124.A.A49.html
MoMoShota: 問一下,php artisan tinker 中能正常存取資料庫嗎? 10/19 10:47
我後來也是去試了tinker 發現其實應該是伺服器的php跟在伺服器終端打php的指令用的版本不同 所以套件沒有共用 問題應該在這裡 ※ 編輯: q10242 (180.176.128.70), 10/19/2018 11:06:13 ※ 編輯: q10242 (180.176.128.70), 10/19/2018 13:11:00