MySQL 上传视频后插入查询失败的可能原因
Possible reasons for failing MySQL insert query after video upload
我需要一些建议,去哪里寻找以下问题的可能原因。
我是运行一个PHP视频上传脚本。每次都在服务器上成功上传视频。在我从临时文件夹到新文件夹执行 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
您可以尝试分块上传文件。我认为你有超时问题。
上传完成后,您可以 运行 您的 mysql 语句。
https://github.com/blueimp/jQuery-File-Upload/wiki/Chunked-file-uploads
好的,所以我终于弄明白了。 MySQL 版本已升级,wait_timeout 已设置为 20 秒。因此错误。
wait_timeout 托管服务提供商允许的最大值为 90 秒 - 不足以满足我的需求,因此我找到了解决方法。
我正在检查现有连接,如果 none,我将关闭然后打开新连接(以下 ADOdb 示例):
if (!mysql_ping($db)) {
$db->Close();
$db = ADONewConnection('mysqli');
$db->Connect('host','user','pass','name') or die("Database not found!");
}
我需要一些建议,去哪里寻找以下问题的可能原因。
我是运行一个PHP视频上传脚本。每次都在服务器上成功上传视频。在我从临时文件夹到新文件夹执行 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
您可以尝试分块上传文件。我认为你有超时问题。 上传完成后,您可以 运行 您的 mysql 语句。
https://github.com/blueimp/jQuery-File-Upload/wiki/Chunked-file-uploads
好的,所以我终于弄明白了。 MySQL 版本已升级,wait_timeout 已设置为 20 秒。因此错误。
wait_timeout 托管服务提供商允许的最大值为 90 秒 - 不足以满足我的需求,因此我找到了解决方法。
我正在检查现有连接,如果 none,我将关闭然后打开新连接(以下 ADOdb 示例):
if (!mysql_ping($db)) {
$db->Close();
$db = ADONewConnection('mysqli');
$db->Connect('host','user','pass','name') or die("Database not found!");
}