标签: codeigniter

在PHP站点突然"MySQL服务器已经消失"错误

今天我的一个网站开始展示

Error Number: 2006
MySQL server has gone away

它是在Apache 2.2.9(Debian),PHP 5.2.6-1 + lenny3(使用CodeIgniter 1.7.1框架)和MySQL 5.0.51a下运行的低流量客户端站点.我显然对这个错误进行了重新研究,但是所有可能的解决方案都意味着有大量的查询可能会超时并重置连接或达到数据包限制.但是,情况并非如此,它是使用最简单的查询处理的小型数据库.为了确保这一点,我编写了几个查询来返回一行,仍然是同样的错误.

数据库凭证很好,我甚至可以直接登录到mysql,运行一些网站的查询并立即获得正确的数据.在同一台服务器上有几个其他站点和数据库的连接,更大的站点,它们都没有问题.

我试过了:

  • 重启MySQL
  • 重新启动整个服务器
  • 寻找日志中的错误(Apache和MySQL都没有)
  • 检查数据库用户权限
  • 改变mysql.connect_timeout和default_socket_timeoutPHP
  • 改变max_allowed_packetMySQL
  • 阅读官方文档,论坛和SO中的所有内容,"MySQL服务器已经消失"

新:

  • 在PHP中禁用持久连接
  • 改变wait_timeout和connect_timeout在MySQL中

更新:

它似乎与我的脚本的执行时间有关:它使用Facebook PHP客户端检索一些信息,这个调用似乎今天随机失败,所以我要么没有来自Facebook的数据或MySQL错误.但令我惊讶的是,没有一个给定的解决方案似乎处理超时.

有任何想法吗?感谢您的时间!

php mysql facebook codeigniter

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

'创建于'和'更新'字段

这看起来很简单,但我很难弄明白.我想在我的数据库中列出一个列,该列列出了第一次创建记录的时间,另一列列出了更新时间.这是我的理解,我应该能够使用MySQL完成所有这些.所有帮助表示赞赏:)

这个问题仍然没有答案,我已经开始怀念Ruby on Rails了...

php mysql codeigniter

14
推荐指数
1
解决办法
3937
查看次数

使用Sparks安装安全的CodeIgniter

安装Sparks假定您遵守默认的CodeIgniter安装模式; 将应用程序,系统和用户指南文件夹以及index.php和许可证文件提取到Web根目录中.

但是,出于安全原因,我们中的许多人将应用程序和系统文件夹从Web根目录中拉出来,并在主index.php文件中重新路由$ system_path和$ application_folder变量.

这种分离往往会破坏Spark的安装.特别是,在getsparks安装说明中使用的简单示例spark .

得到错误:

遇到错误无法在sparks找到火花路径/ example-spark/1.0.0 /

我维护以下目录结构:

  • CISYS
    • V202
    • V200
  • project1_application
  • project2_application
  • project3_application
  • www(公共HTML)
    • PROJECT1
      • CSS
      • JS
      • 图片
      • 等等
    • 项目2
      • 等等

我必须改变什么来实现安全+火花?打开任何类型的建议.你如何设置你的安装?

security codeigniter sparks-pakage-management

14
推荐指数
1
解决办法
2823
查看次数

来自库的codeigniter访问模型

我试图将以下代码集成到我的项目中.它在图书馆举行

function do_std_login($email, $password) {
    $CI =& get_instance();
    $login = $CI->users_model->login($email, md5($password));
    if($login){
        $session_array = array(
            'user_id' => $login->user_id,
            'name' => $login->name,
            'type' => 'Standard'
        );
        $CI->session->set_userdata($session_array);

        // Update last login time
        $CI->users_model->update_user(array('last_login' => date('Y-m-d H:i:s', time())), $login->user_id);

        return true;
    } else {
        $this->errors[] = 'Wrong email address/password combination';
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

我这样称呼它:

$login = $this->jaclogin->do_std_login($this->input->post('email'),$this->input->post('password'));
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,我得到以下错误

遇到PHP错误严重性:通知消息:未定义属性:Login :: $ users_model文件名:libraries/jaclogin.php行号:45

我检查我是否在codeigniter autoload文件中加载了正确的库.

有任何想法吗?

谢谢

杰米诺曼

codeigniter

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

Codeigniter中的报告

在Codeigniter框架中生成报告的最简单方法是什么?有没有可用于执行此任务的库?除了绘制其他资源以外做什么.

php csv codeigniter report codeigniter-2

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

CodeIgniter活动记录不在字符串中

我在CI Active Record的" Where Not In "中遇到了问题.我试图排除一系列ID.我无法理解为什么一切都运行良好,花花公子一个记录,但没有多个.

我的查询

$this->db->where_not_in('crm.user_id', $ignore);
Run Code Online (Sandbox Code Playgroud)

问题是当我分析查询是错误的时候.

带有一串ID

// $ignore = "12,13";    
SELECT *
FROM (`crm`)
WHERE `crm`.`user_id` NOT IN ('16,13') 
AND `survey` =  1 
Run Code Online (Sandbox Code Playgroud)

带有一串引号ID

// $ignore = "'12','13'";
SELECT *
FROM (`crm`)
WHERE `crm`.`user_id` NOT IN ('\'16\',\'13\'') 
AND `survey` =  1 
Run Code Online (Sandbox Code Playgroud)

我被迫做了一个" or_where_not_in "或类似的循环吗?

codeigniter

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

memcached可以存储复杂的对象吗?

你能存储复杂的对象,包括自定义/继承的公共/静态变量/函数吗?

我在谈论Memcached(http://memcached.org/)

php memcached codeigniter

14
推荐指数
1
解决办法
8208
查看次数

在Codeigniter中上传多个文件

我想使用单个元素上传多个文件.所以我试试这个例子.

使用CodeIgniter 2.0上传多个文件(Array)

这是我的表格

<form enctype="multipart/form-data" class="jNice" accept-charset="utf-8" method="post" action="http://xxxx.dev/admin/add_estates">              
    <fieldset>      
            <label>Title * : </label>                       
            <input type="text" class="text-long" value="" name="title">

            <label>Description : </label>                       
            <textarea class="mceEditor" rows="10" cols="40" name="description"></textarea>

            <label>Image : </label>                     
            <input type="file" multiple="" name="images[]">                             

            <button class="button-submit" type="submit" name="save" id="">Save</button>
    </fieldset>         
</form>
Run Code Online (Sandbox Code Playgroud)

这是我的控制器

public function add_estates()
{
    $data['page_title'] = "&copy; IDEAL - Administrator - Real State - Add Real Estate";
    $data['main_content'] = 'admin/add_estates';

    if ($this->input->post() !== FALSE) {           
        $this->load->library('form_validation');
        $this->form_validation->set_rules('title', 'Career Title', 'trim|required');           

        if ($this->form_validation->run() !== FALSE) {                

            $title = …
Run Code Online (Sandbox Code Playgroud)

php upload codeigniter file-upload

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

Codeigniter:致命错误调用未定义函数mysqli_init()

我刚刚更改了服务器并遇到以下错误:

Fatal error: Call to undefined function mysqli_init() in /home/blacktwitter/public_html/system/database/drivers/mysqli/mysqli_driver.php on line 126
A PHP Error was encountered

Severity: Warning

Message: Cannot modify header information - headers already sent by (output started at /home/blacktwitter/public_html/system/database/drivers/mysqli/mysqli_driver.php:126)

Filename: core/Common.php

Line Number: 564

Backtrace:

A PHP Error was encountered

Severity: Error

Message: Call to undefined function mysqli_init()

Filename: mysqli/mysqli_driver.php

Line Number: 126

Backtrace:
Run Code Online (Sandbox Code Playgroud)

网站在Codeigniter.它可以很好地在一台服务器上运行,也可以在本地机器上运行.但是,当我在新服务器上传该网站时,我有错误.当然我改变了重要的参数,如数据库连接,base_url()等.

我对数据库很怀疑,但我创建了一个新的数据库和用户等,并更改了连接信息.

为什么会这样?知道它是服务器上还是网站上的错误会很有帮助.另外,当我用一些测试代码创建一些index.html时,一切都很好.

mysqli codeigniter server

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

Codeigniter 3.0查询错误

复制此表:User_Posts

ID     | Upvotes | Downvotes | CAT  |
___________________________________
42134  |   5     |      3    | Blogs|
------------------------------------
12342  |   7     |      1    | Blogs|
-------------------------------------
19344  |   6     |      2    | Blogs|
------------------------------------
Run Code Online (Sandbox Code Playgroud)

我需要在其类别中获得项目的排名.因此ID:19344将排名第2位,有4个赞成票,12342位有6个赞成票.排名由(upvotes-downvotes)计数在其类别中确定.

所以我写了这个MySQL查询.

SELECT rank FROM (SELECT *, @rownum:=@rownum + 1 AS rank
FROM User_Posts where CAT= 'Blogs' order by 
(Upvotes-Downvotes) DESC) d, 
(SELECT @rownum:=0) t2 WHERE POST_ID = '19344'
Run Code Online (Sandbox Code Playgroud)

直接在mysql中运行时返回给我(Rank = 2).这是正确的结果

但是,当我尝试通过代码点火器的查询构建器构建它时,我得到了

$table = 'User_Posts'; 
$CAT= 'Blogs'; 
$POST_ID = '19344';

 $sql = "SELECT …
Run Code Online (Sandbox Code Playgroud)

php mysql codeigniter

14
推荐指数
2
解决办法
492
查看次数