我有一个使用laravel开发的博客。在我的本地电脑,一切都很好。但是当我将它上传到实时共享托管服务器时,它会抛出如下错误:
ErrorException in MySqlConnector.php line 124:
Wrong COM_STMT_PREPARE response size. Received 7
我的服务器配置如下所示
- 服务器:MariaDB
- 服务器版本:10.1.20-MariaDB - MariaDB Server
- PHP 5.6
醇>
我找不到任何解决方案。任何帮助将不胜感激。
答案 0 :(得分:1)
我也遇到了同样的问题。我的网站托管服务提供商是000webhost。只需在数据库配置文件(config / database.php)中将此PDO属性PDO::ATTR_EMULATE_PREPARES
设置为true,它就可以正常工作。
例如:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
//.......
'options' => [PDO::ATTR_EMULATE_PREPARES => true,]
],
答案 1 :(得分:0)
两者内部 (1)/bootstrap/cache/config.php (2)/config/database.php
对于您的特定数据库服务器驱动程序,您需要添加:
'options' => [PDO::ATTR_EMULATE_PREPARES => true]
例如:
'driver' => 'mysql',
'host' => 'localhost',
'port' => '3306',
//.....
'options' => [PDO::ATTR_EMULATE_PREPARES => true]
但请不要在两个文件中添加它:
因为当我在/config/database.php中添加它时,我一直得到同样的错误,所以经过几个小时的谷歌搜索,我意识到这是因为这个/bootstrap/cache/config.php是一种缓存文件由Laravel .env文件和/config/database.php以及其他文件组成,当您使用php artisan key:generate。在.env文件中设置API_KEY内容时,此缓存文件似乎只进行一次。
答案 2 :(得分:-1)
在到处研究之后,我得出结论,问题出在共享主机的数据库引擎中,可能是权限或其他内容,所以我找到的解决方案是在单独的服务中创建数据库 。我使用了sql9.freemysqlhosting.net,到目前为止工作正常。
注意:上面的这个想法是从另一个人复制的,但我尝试过,它运作成功