Video
-------
id
source_low
source_med
source_high
Source
--------
id
duration
thumbnail
Run Code Online (Sandbox Code Playgroud)
视频项目可以包含至少1个或最多3个源(源低,源med,源高).
这个想法与youtube相同,这意味着视频记录可以包含多种质量.因此,当我返回持续时间/缩略图时,我想检查哪个源存在并返回其中一个.
例如,如果视频有source_low或source_med,这意味着source_low和source_med有持续时间和缩略图,那么我只需要返回其中一个.
Codeigniter语法:
$this->db->select('v.*, sl.duration, sm.duration as duration_m, sh.duration as duration_h, sl.thumbnail, sm.thumbnail as thumbnail_m, sh.thumbnail as thumbnail_h');
$this->db->from('video as v');
$this->db->join('source as sl', 'v.source_low = sl.video_id', 'left');
$this->db->join('source as sm', 'v.source_med = sm.video_id', 'left');
$this->db->join('source as sh', 'v.source_high = sh.video_id', 'left');
$this->db->group_by('v.id');
Run Code Online (Sandbox Code Playgroud)
SQL(缩略图与获取的方式相同):
SELECT v.*, sl.duration, sm.duration as duration_sm, sh.duration as duration_sh
FROM video as v
LEFT JOIN source as sl ON (v.source_low = sl.video_id) …Run Code Online (Sandbox Code Playgroud) 我想将我从javascript中获取的值传递给控制器.但我不使用任何功能.我只想访问控制器中视图中的值.我有以下观点.
<select id="selected_year" name="selected_year" data-live-search="true" style="margin-left: 27px;" >
<option value="2015">2015</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
<option value="2021">2021</option>
<option value="2022">2022</option>
<option value="2023">2023</option>
<option value="2024">2024</option>
</select>
Run Code Online (Sandbox Code Playgroud)
我使用以下javascript获取下拉值.
<script type="text/javascript">
$("#selected_year").live('change', function() {
var selected_year = $(this).attr("value");
alert(selected_year);
window.location.reload();
});
</script>
Run Code Online (Sandbox Code Playgroud)
我想把我从上面的javascript中获得的值传递给控制器.有可能吗?
这是我的第一个php框架.我的控制器中有一个php文件,它是posts.php但是当我尝试运行localhost/codeigniter/index.php/posts时,它显示错误404
.htaccess在应用程序文件夹中
<IfModule authz_core_module>
Require all denied
</IfModule>
<IfModule !authz_core_module>
Deny from all
</IfModule>
Run Code Online (Sandbox Code Playgroud)
autoload.php
$autoload['libraries'] = array('database');
$autoload['helper'] = array('url');
Run Code Online (Sandbox Code Playgroud)
config.php文件
$config['base_url'] = 'http://localhost/codeigniter/';
$config['index_page'] = 'index.php';
Run Code Online (Sandbox Code Playgroud)
routes.php文件
$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
Run Code Online (Sandbox Code Playgroud)
模型文件夹中的post.php
class Post extends CI_Model{
function get_posts($num = 20, $start = 0){
//$sql = "SELECT * FROM users WHERE active=1 ORDER BY date_added DESC LIMIT 0,20;";
$this->db->select()->from('posts')->where('active', 1)->order_by('date_added', 'desc')->limit(0, 20);
$query=$this->db->get();
return $query->result_array();
}
}
Run Code Online (Sandbox Code Playgroud)
控制器文件夹中的posts.php
class Posts extends CI_Controller{
function index(){ …Run Code Online (Sandbox Code Playgroud) 我正在为Codeigniter中的PHP脚本运行Cron Job来转换上传的视频.一切都执行没有任何问题,但一旦它将数据插入数据库,我收到此错误:
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);
}
Run Code Online (Sandbox Code Playgroud)
这不起作用我仍然收到错误.如果我$this->db->reconnect();在每次exec收到这些错误后添加:
Message: mysql_ping() expects parameter 1 to be resource, boolean given
Message: mysql_real_escape_string() expects parameter 2 to be resource, boolean given
就像我们使用FFMPEG转换我的视频一样.
所有执行完成后如何保持连接活动,以便将数据插入数据库?
编辑:这是Codeigniter的$this->db->reconnect();功能:
public function reconnect()
{
if (mysql_ping($this->conn_id) === FALSE)
{
$this->conn_id = FALSE;
}
}
Run Code Online (Sandbox Code Playgroud) 给定文件结构并使用WAMP
www
application
\views
\templates
header.php
assets
\js
index.js
\css
index.css
Run Code Online (Sandbox Code Playgroud)
我试图遵循此解决方案中给出的示例Codeigniter:如何包括javascript文件,但是我一直没有成功。
header.php
<html>
<head>
<?php $this->load->helper('url');?>
<script type="text/javascript" src="<?php echo base_url();?>assets/js/index.js" ></script>
<title>CodeIgniter Tutorial</title>
</head>
<body>
<h1><?php echo $title ?></h1>
Run Code Online (Sandbox Code Playgroud)
在浏览器中抛出的错误是
GET http://localhost/index.php/localhost/assets/js/index.js 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)
header.php被调用,因为它是我唯一的带有js参考的php文件,抱歉,如果我误解了其他人的解决方案,我真的不明白为什么它不起作用
您好我正在调用控制器在我的基于codeigniter的应用程序中使用AJF获取部分,该应用程序具有CSRF启用功能
我的ajax代码
$('#classes').change(function(){
$classes=$(this).val();
$.ajax({
type:"POST",
data:{
'<?php echo $this->security->get_csrf_token_name(); ?>' : '<?php echo $this->security->get_csrf_hash(); ?>',
'class':$classes
},
url:"<?php echo base_url();?>index.php/admin/getsection/"+$classes,
success:function(return_data)
{
//alert(return_data);
$('#section').html('');
$('#section').html(return_data);
$('#section').val(section);
}
});
Run Code Online (Sandbox Code Playgroud)
当我第一次调用ajax函数时,它会运行完美.但是当我再次运行相同的功能时,它将返回403禁止错误.
请告诉我的工作
我想删除URL中的index.php,但它不起作用.这是我做的:
我编辑了codeigniter文件夹中的.htaccess.我根据文档中的示例添加了这个.
RewriteEngine On
RewriteCond%{REQUEST_FILENAME}! - f
RewriteCond%{REQUEST_FILENAME}!-d
RewriteRule ^(.*)$ index.php/$ 1 [L]
然后我也删除了app/config中的index.php
然后我创建一个简单的控制器:
class Users extends CI_Controller {
public function __construct() {
parent::__construct();
}
public function index() {
echo "hello world";
}
}
Run Code Online (Sandbox Code Playgroud)当我访问此网址时:
http://localhost/order_menu/users
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
Not Found
The requested URL /order_menu/users was not found on this server.
Run Code Online (Sandbox Code Playgroud)
你能帮帮我吗?
如果在我要回滚已提交查询的任何表中出现任何错误时,我都需要插入2个表中。
我在控制器内部编写了查询,例如:
$this->db->trans_start();
$this->db->insert_batch('market_users_mapping', $marketData);
$this->db->insert_batch('maincategory_users_mapping', $maincategoryData);
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE) {
throw error
}
Run Code Online (Sandbox Code Playgroud)
这很完美。但是我认为在控制器内部编写查询不是一个好习惯。因此,我做到了这一点,称为模型函数,并在相应的模型函数中编写了这些insert_batch查询。
$this->db->trans_start();
$this->maincategory_model->function_name()
$this->market_model->function_name();
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE) {
throw error
`enter code here`
}
Run Code Online (Sandbox Code Playgroud)
但这没有按预期工作
我们正在使用2个数据库,我们的本地数据库和外部数据库.但是现在我们的外部数据库已关闭(我们仍在开发中,所以我们遇到了这个问题很好)并且它现在尝试连接到外部数据库30秒,如何将数据库的连接超时更改为类似1 - 2秒?我在我的数据库上使用Codeigniter和PDO驱动程序.有没有人为这个问题提供干净的解决方案?
我开始使用Codeigniter框架,并在他们的新发布文档中说
请勿使用此加密库或任何其他加密库进行用户密码存储!密码必须经过哈希处理,您应该通过PHP自己的密码哈希扩展来实现.
问题是我使用PHP 5.3并且该扩展需要5.5
在PHP 5.3中我应该使用什么来进行散列?
codeigniter ×10
php ×9
database ×2
mysql ×2
.htaccess ×1
ajax ×1
csrf ×1
hash ×1
javascript ×1
jquery ×1
model ×1
pdo ×1
php-5.3 ×1
sql ×1
transactions ×1