我正在运行一个 Cron Job 来转换上传的视频,与 Codeigniter 中的 PHP 脚本相关。一切都执行得很顺利,但是一旦到了将数据插入到数据库中这一步,就会出现以下错误:
Error Number: 2006 MySQL server has gone away
该进程基本上会将视频进行转换,如果成功,则从视频创建缩略图和海报,然后将视频数据插入数据库中。我已经尝试在我的模型函数中添加$this->db->reconnect();
。以下是该函数:
function add_video($data)
{
//BECASUE THE CONVERSION TAKES SO LONG WE NEED TO RECONNECT TO THE DATABASE AFTER EACH EXEC
$this->db->reconnect();
$this->db->insert('video_uploads', $data);
}
这种方法无效,仍然会收到错误。如果在每个exec
之后添加$this->db->reconnect();
,我会收到以下错误:
消息:mysql_ping()需要参数1为资源类型,布尔值被给出
消息:mysql_real_escape_string()需要参数2为资源类型,布尔值被给出
只是作为一个提示,我正在使用FFMPEG转换我的视频。
如何在所有执行完成后保持连接并将数据插入数据库?
编辑:这是Codeigniter的$this->db->reconnect();
函数的样子:
public function reconnect()
{
if (mysql_ping($this->conn_id) === FALSE)
{
$this->conn_id = FALSE;
}
}
$this->db->reconnect();
之前添加了$this->load->database();
,这似乎有效。如果你想把它写成答案,我会接受它。 - iamthestreets