0

我是一名葡萄牙学生,我正在尝试实现一个用于游戏管理的 Web 应用程序。

表结构game

`game` (
`idGame` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(75) NOT NULL,
`primaryScreen` blob NOT NULL,
`game_content` blob NOT NULL,
`category` varchar(45) NOT NULL,
`platform` varchar(45) NOT NULL,
`device` varchar(45) NOT NULL,
`description` varchar(250) NOT NULL,
`funcionalities` varchar(150) NOT NULL,
PRIMARY KEY (`idGame`)
)

`screen` (
`idScreen` int(11) NOT NULL AUTO_INCREMENT,
`id_Game` int(11) NOT NULL,
`image` longblob NOT NULL,
PRIMARY KEY (`idScreen`),
KEY `id_Game` (`id_Game`)
) 

我已经阅读了关于如何将文件上传到数据库中的 bolb 的 yii 教程 http://www.yiiframework.com/wiki/95/saving-files-to-a-blob-field-in-the-database

唯一的区别是在保存之前的函数中我只想保留文件的内容(我可以这样做还是必须保留文件名,文件扩展名......)所以我在模型中这样做:

public function beforeSave()
{
if($file=CUploadedFile::getInstance($this,'game_uploaded'))
{
// $this->file_name=$file->name;
//$this->file_type=$file->type;
//$this->file_size=$file->size;
$this->game_content=file_get_contents($file->tempName);
//$file->saveAs('path/to/uploads');

}
if($file=CUploadedFile::getInstance($this,'primscreen'))
{
//$this->file_name=$file->name;
//$this->file_type=$file->type;
//$this->file_size=$file->size;
$this->primaryScreen=file_get_contents($file->tempName);
//$file->saveAs('path/to/uploads');
}




return parent::beforeSave();
}

但是当我尝试时出现此错误:

PDOStatement::execute(): MySQL server has gone away 

有人可以帮我吗?
我感谢任何建议。谢谢 :)

4

3 回答 3

0
  1. 一个常见的原因MySQL server has gone away是超时。尝试default_socket_timeout像这样增加:

    ini_set('default_socket_timeout', 300);
    
  2. 另一个可能是 blob 的大小。尝试在php.ini

    post_max_size
    upload_max_filesize
    
于 2013-04-15T22:54:07.243 回答
0

在您的配置文件中

尝试将其主机从“localhost”更改为“127.0.0.1”

于 2013-04-14T08:51:58.413 回答
0

在保存到数据库之前尝试使用 base64_encode

邦特拉巴霍!

于 2013-04-15T22:19:34.190 回答