标签: codeigniter

获取MYSQL中某些列为null的表中的值

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)

php mysql sql database codeigniter

5
推荐指数
1
解决办法
117
查看次数

CodeIgniter - 如何将值从视图传递到控制器?

我想将我从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中获得的值传递给控制器​​.有可能吗?

javascript php codeigniter

5
推荐指数
1
解决办法
1090
查看次数

Codeigniter 3.0.0 - 找不到错误404页面

这是我的第一个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)

php model-view-controller codeigniter

5
推荐指数
1
解决办法
1万
查看次数

PHP Codeigniter 3 MySQL服务器已经消失

我正在为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)

php mysql codeigniter

5
推荐指数
1
解决办法
7041
查看次数

如何在Code Igniter中加载资产,例如JS文件和CSS文件

给定文件结构并使用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文件,抱歉,如果我误解了其他人的解决方案,我真的不明白为什么它不起作用

php codeigniter

5
推荐指数
1
解决办法
3517
查看次数

Ajax CSRF 403禁止codeigniter

您好我正在调用控制器在我的基于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禁止错误.

请告诉我的工作

php ajax jquery codeigniter csrf

5
推荐指数
1
解决办法
5226
查看次数

无法使用Codeigniter URL删除WAMP中的index.php

我想删除URL中的index.php,但它不起作用.这是我做的:

  1. 我在Apache中启用rewrite_module然后重启服务器
  2. 我编辑了codeigniter文件夹中的.htaccess.我根据文档中的示例添加了这个.

    RewriteEngine On

    RewriteCond%{REQUEST_FILENAME}! - f

    RewriteCond%{REQUEST_FILENAME}!-d

    RewriteRule ^(.*)$ index.php/$ 1 [L]

  3. 然后我也删除了app/config中的index.php

  4. 然后我创建一个简单的控制器:

    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)

你能帮帮我吗?

php .htaccess codeigniter

5
推荐指数
1
解决办法
1903
查看次数

使用CodeIgniter进行多模型功能的单笔交易

如果在我要回滚已提交查询的任何表中出现任何错误时,我都需要插入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)

但这没有按预期工作

transactions model codeigniter

5
推荐指数
1
解决办法
3052
查看次数

在CodeIgniter 3中设置数据库连接超时

我们正在使用2个数据库,我们的本地数据库和外部数据库.但是现在我们的外部数据库已关闭(我们仍在开发中,所以我们遇到了这个问题很好)并且它现在尝试连接到外部数据库30秒,如何将数据库的连接超时更改为类似1 - 2秒?我在我的数据库上使用Codeigniter和PDO驱动程序.有没有人为这个问题提供干净的解决方案?

php database pdo codeigniter connection-timeout

5
推荐指数
1
解决办法
6147
查看次数

我应该如何在CodeIgniter中散列密码

我开始使用Codeigniter框架,并在他们的新发布文档中说

请勿使用此加密库或任何其他加密库进行用户密码存储!密码必须经过哈希处理,您应该通过PHP自己的密码哈希扩展来实现.

问题是我使用PHP 5.3并且该扩展需要5.5

在PHP 5.3中我应该使用什么来进行散列?

php hash codeigniter php-5.3

5
推荐指数
2
解决办法
2万
查看次数