在LONGBLOB中存储大(2MB)音频文件时,Mysql服务器已经消失

Usm*_*iaz 5 php mysql audio file-upload

我想将音频文件存储在mysql数据库中.我LONGBLOB用来存储base64这个音频文件的编码字符串.但正如我执行我的查询,我收到此警告,没有插入数据库:

Warning: mysql_query() [function.mysql-query]: MySQL server has gone away 
Run Code Online (Sandbox Code Playgroud)

当我上传任何图像文件,我没有得到任何错误,代码工作正常.当我上传视频和音频文件时会发生这种情况.在我正在使用的代码中:

<?php
    include 'database_handler.php';
    if(isset($_FILES['fileToUpload']['name'])){
    echo "uploading. . .";
    $file = rand(0, 10000000).$_FILES['fileToUpload']['name'];
    if (move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $file)) {
        if($fp = fopen($file,"rb", 0))
        {
           $picture = fread($fp,filesize($file));
           fclose($fp);
           $base64 = base64_encode($picture);
           //echo $base64;
           $db = new Database();
           $db->test($base64);
        }
    }
}
?>
<form action="test.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

这是我正在调用的函数代码:

function test($base64String){
    if (mysql_query("update users set attribute1='$base64String' where id = '83'")){
                    echo "success";

                }else{
                    mysql_error();
                }
}
Run Code Online (Sandbox Code Playgroud)

谢谢

Lea*_*ero 8

请增加 /etc/mysql/my.cnf,

wait_timeout = 3600
Run Code Online (Sandbox Code Playgroud)

max_allowed_packet = 128M
Run Code Online (Sandbox Code Playgroud)

并重新启动

sudo /etc/init.d/mysql restart
Run Code Online (Sandbox Code Playgroud)

注意:为什么要将音频文件存储在数据库中,而是存储它的路径并将文件存储在系统中