视频上传后MySQL插入查询失败的可能原因

时间:2015-11-12 22:50:39

标签: php mysql video pdo insert

我需要一些建议,以寻找下面问题的可能原因。

我正在运行用于视频上传的PHP脚本。每次在服务器上成功上传视频。从temp文件夹到新文件夹move_uploaded_file后,我有以下代码:

$sql_insrt  = "INSERT INTO tbl_videos SET
               video_name       = 'name1',
               v_id             = '12'";
$rs_insrt   = $db -> Execute($sql_insrt);

现在,对于小型视频文件(1~5MB),$rs_insrt查询成功执行,没有任何问题。 但是,当我尝试上传较大的视频(例如20MB)时,$rs_insrt无法执行。视频文件上传到新文件夹(应该如此),$sql_insrt查询正确,但插入查询不会进入。

你们有没有想过为什么会这样?

我在php.ini中有以下配置,所以我不认为这是问题所在:

max_execution_time = 300 
max_file_uploads = 20
max_input_nesting_level = 64 
max_input_time = -1
max_input_vars = 1000
memory_limit = 128M
post_max_size = 100M
upload_max_filesize = 100M

2 个答案:

答案 0 :(得分:0)

您可以尝试上传文件块。我认为你有超时问题。 上传完成后,您可以运行mysql语句。

https://github.com/blueimp/jQuery-File-Upload/wiki/Chunked-file-uploads

答案 1 :(得分:0)

好的,所以我终于明白了。 MySQL版本升级,wait_timeout设置为20秒。因此错误。

主机提供商对wait_timeout的最大允许值为90秒 - 不足以满足我的需求,因此我找到了解决方法。

我正在检查现有的连接,如果没有,我正在关闭,然后打开新的连接(下面的示例为ADOdb):

if (!mysql_ping($db)) {
   $db->Close();                        
   $db = ADONewConnection('mysqli');
   $db->Connect('host','user','pass','name') or die("Database not found!");
}