标签: codeigniter

Codeigniter数据库插入失败

目前在我的控制器中,当添加新数据时,我验证输入,如果有任何问题,它允许用户知道,否则它将数据传递给模型以插入数据库

我现在如何检查插入语句在模型中是否正常工作,并让用户知道它是否没有.

像下面这样的insert语句是返回true还是false,然后可以返回给控制器?

$this->db->insert('Faviroute_Addresses', $address_data);
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

activerecord codeigniter insert

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

codeigniter $ this-> db-> where(); 自定义字符串问题

我试图使用自定义字符串选择一些值.下面是我的代码

  $this->db->from('posted');
  $st="infor='rent' AND (typeq='in' OR typeq='out')";
  $this->db->where($st);  
  $q = $this->db->get();  
Run Code Online (Sandbox Code Playgroud)

发生数据库错误

Error Number: 1054

Unknown column ‘infor=‘rent’’ in ‘where clause’
SELECT * FROM (`posted_ads`) WHERE `infor=‘rent’` AND (typeq=‘in’
 OR typeq=‘out’)
Filename: C:\wamp\www\parklot\system\database\DB_driver.php
Line Number: 330
Run Code Online (Sandbox Code Playgroud)

我认为问题是因为

WHERE `infor='rent'` 
Run Code Online (Sandbox Code Playgroud)

当我manualy执行此代码时,它完美地工作.

WHERE infor='rent' 
Run Code Online (Sandbox Code Playgroud)

我怎么摆脱

`` 
Run Code Online (Sandbox Code Playgroud)

因为它自动添加

php codeigniter

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

MySQL将带有空字符串的所有行作为where子句返回

我在调试CodeIgniter活动记录时发现了这个问题,如下所示:

$this->db->from("table_name");
$this->db->where("field_name", "");
$result = $this->db->get()->result_array();
Run Code Online (Sandbox Code Playgroud)

生成的查询是:

SELECT * FROM `table_name` WHERE `field_name` = 0;  // Returns all rows in table
Run Code Online (Sandbox Code Playgroud)

即使空字符串被强制转换为0,我们也期望得到一个空的结果table_name.field_name充满了非空字符串值.但是,我从此查询中获取整个表.谁知道为什么?这根本不直观.

我尝试了没有强制转换为0的查询,它的工作原理如下:

SELECT * FROM `table_name` WHERE `field_name` = "";  // Empty result
Run Code Online (Sandbox Code Playgroud)

为什么演员阵容为0?


编辑:使用此替代CodeIgniter语法进行相同的强制转换:

$this->db->query('SELECT * FROM table_name WHERE field_name = ?', array(""));
Run Code Online (Sandbox Code Playgroud)

php mysql casting codeigniter

7
推荐指数
1
解决办法
2275
查看次数

带有ajax更新的Jqueryui可排序列表

我正在使用CodeIgniter和jQuery UI Sortable小部件来更改我的菜单列表位置.

例如,如果我的菜单列表是这样的:

<li>menu 1</li>
<li>menu 2</li>
<li>menu 3</li>
<li>menu 4</li>
Run Code Online (Sandbox Code Playgroud)

我想把第一个菜单放在第二个菜单下,让它留在那里.

但是我有点困在jQuery上.

这是获取列表元素的原因:

 <ul id="sortable"> 
    <?php  foreach ($rows as $r)
    {
        echo '
        <li id="sort_'.$r->pid.'" class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span> 
            ' . $r->page_name . '
        </li>';
    }

    ?>
</ul>
Run Code Online (Sandbox Code Playgroud)

和jquery:

$( "#sortable" ).sortable({
    placeholder: "ui-state-highlight",
    opacity: 0.6,
    update: function(event, ui) {
        var info = $(this).sortable("serialize");
        alert(info);
    }
});
$( "#sortable" ).disableSelection(); 
Run Code Online (Sandbox Code Playgroud)

我设法提醒结果阵列.

现在我不希望任何人为我写这个,只是暗示如何使用ajax进行更新.

php ajax jquery codeigniter jquery-ui-sortable

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

CodeIgniter - 如何检查要在每个方法中使用的会话

让我说在我的控制器名为Book,我有很多方法,比如 get_book(); read_book(); remove_book();

没有用户登录就不能使用类中的方法,我可以user_id从会话中获取.

我的问题是,检查user_id会话是否已设置以便我可以使用这些方法的最佳方法是什么?

至于现在,我正在考虑创建一个is_logged_in()方法,并使用if-else语句将其应用于每个方法,例如

if($this->is_logged_in()
{
   //do something
}
else
{
   //redirect to home
}  
Run Code Online (Sandbox Code Playgroud)

这不是漫长而乏味吗?有没有最终的方法来实现这一目标?

我看了链接

codeigniter检查每个控制器中的用户会话

但似乎我仍然需要is_logged_in在每种方法中应用检查.

感谢你们对我的帮助!

session codeigniter

7
推荐指数
2
解决办法
5984
查看次数

Codeigniter读取nodejs中的会话cookie

我正在使用codeigniter创建一个应用程序,并为实时内容实现nodejs.我想检查用户是否使用nodejs登录.使用下面的代码,我可以在nodejs服务器中获取codeigniter会话ID:

var server = require('https').createServer(options, function(request, response){
var cookies=(function(str){
    var result={};
    str.split(/;\s+/).forEach(function(e){
        var parts=e.split(/=/,2);
        result[parts[0]]=parts[1]||'';
    });
    return result;
})(request.headers.cookie),
    sessionCookieName='ci_session',
    sessionId=cookies[sessionCookieName]||'';
    console.log(sessionId);
}).listen(8080);
Run Code Online (Sandbox Code Playgroud)

codeigniter会话存储在数据库中,加密设置为true.并且sess_match_ip = TRUE,sess_match_useragent = TRUE;

现在我的问题是,检查用户是否登录的好方法是什么?我已经安装了node-mysql客户端.我知道CI做的事情如下:

SELECT *
FROM (`ci_sessions`)
WHERE `session_id` =  'blabla'
AND `ip_address` =  '127.0.0.1'
AND `user_agent` =  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.2   
(KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2'
Run Code Online (Sandbox Code Playgroud)

如何解密会话ID并检查我是否从db获得匹配?

提前致谢

乔治

php mysql session codeigniter node.js

7
推荐指数
1
解决办法
2681
查看次数

CodeIgniter + CSS

美好的一天,我正在和Smarty一起学习CodeIgniter.我的CSS文件存储在

/App01/application/views/css/main.css
Run Code Online (Sandbox Code Playgroud)

要链接我的CSS,我使用:

<link rel="stylesheet" type="text/css" href="http://localhost:88/APP1/application/views/css/layout.css" media="screen" />
Run Code Online (Sandbox Code Playgroud)

但是我的页面上没有应用CSS.当我打开CSS URL时,我收到一条消息:

Forbidden
You don't have permission to access /APP1/application/views/css/layout.css on this server.
Run Code Online (Sandbox Code Playgroud)

拜托,我做错了什么?我想将CSS与视图保持在一起,因为将来我想学习如何创建多个主题,我认为CSS应该保存在主题文件夹中.

我可以用一些Smarty变量替换CSS文件的URL路径,这样当我移动我的应用程序时,我不需要手动更改模板中的CSS URL路径吗?

先感谢您!Vojtech

css codeigniter codeigniter-2

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

CodeIgniter - 向form_dropdown添加默认值

我想知道是否有人可以帮助我.我有一个form_dropdown,我正在填充数据库中的选项.我想在列表顶部添加默认的"请选择"值,但如果不将其添加到数据库中,则无法弄清楚如何执行此操作.

我的代码如下:

function populatedropdown()
{
    $query = $this->db->query('SELECT * FROM '.$this->table_name.' WHERE active=1 ORDER BY brand');
    $dropdowns = $query->result();

    foreach($dropdowns as $dropdown) {
        $dropDownList[$dropdown->brand] = $dropdown->brand;
    }
    $finalDropDown = $dropDownList;

    return $finalDropDown;
}
Run Code Online (Sandbox Code Playgroud)

php codeigniter

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

翻译CodeIgniter的表单验证错误消息

无论如何转换CodeIgniter的表单验证错误消息而不触及系统文件?

php validation localization codeigniter internationalization

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

处理codeigniter mysql插入中的重复键

我想做的是这样的:

function registerUser($username, $password){

$this->db->insert('tblUsers', array('username'=>$username, 'password'=>md5($password)));
if($this->db->_error_number()==1062){
    return "DUPLICATE";
}
return true;

}
Run Code Online (Sandbox Code Playgroud)

但是,如果有一个重复的密钥,那么它不会让我得到这个_error_number()位.它显示如下错误:

在此输入图像描述

如何让codeigniter停止出错并将错误号传递给我以便妥善处理?

谢谢

mysql codeigniter

7
推荐指数
2
解决办法
7812
查看次数