我想使用codeigniter活动记录实现SQL语句.
UPDATE tags SET usage = usage+1 WHERE tag="java";
Run Code Online (Sandbox Code Playgroud)
如何使用Codeigniter活动记录实现此目的?
问候
下面的引用已经说服终于去了ORM.在过去,我真的不喜欢ORM并将其作为一种愚蠢的sql方式写下来.处理sql中的分层数据是我不想处理的痛苦.
我们有这些"对象 - 关系映射器"的东西是有原因的,这是因为称为对象 - 关系阻抗不匹配的问题.基本上,用于确保它们保持完整的数据库的正式数学模型遵循具有行和列的表系统以及对其他表的引用,而我们今天使用的大多数编程语言中的数据结构在嵌套的树状结构中操纵数据.它更像是电子表格和XML文档之间的区别,或者是分类帐和族树图之间的区别.- http://zork.net/motd/nick/django/your-favorite-orm-sucks.html
我想要一点点努力设置.我的项目大部分都很小,所以当我只使用它们进行少量查询时,我不想花太多时间来定义模型.
我使用codeigniter作为php框架,使用MySQL作为数据库.
我有一条线 - $autoload['libraries'] = array('database');在CI中autoload.php.因此,我得到一个空白页面.当我删除'database',选项然后我开始得到输出.
现在我的问题不是如何配置数据库,而是如何配置CI以说出自己的想法.当'database'启用了所有我得到的是一个完整的空白页.php日志中没有错误,Apache日志中没有错误,CI日志中没有错误.在PHP我已经设置E_ALL.在我设置的CI配置log_threshold中4,即应记录所有消息.我还需要做什么?
我试图接收和解析使用Codeigniter在POST请求中发送的JSON对象,但我无法"找到"它.
这是我的控制器代码:
public function parse () {
$json = $this->input->post();
$json = stripslashes($json);
$json = json_decode($json);
print_r($json);
}
Run Code Online (Sandbox Code Playgroud)
这是我的JSON对象:
{"data":"value"}
Run Code Online (Sandbox Code Playgroud) 我在Codeigniter中创建了一个自定义CMS,我希望有一个类似于Wordpress中使用的小部件系统.
例如,我想要一个小部件,显示侧栏上显示的最后5个帖子.我还希望能够控制这个小部件逐页显示的页面.
我正在使用Phil Sturgeon的模板库,因此示例控制器如下所示:
$this->template->set_partial('header', 'layouts/header');
$this->template->set_partial('footer', 'layouts/footer');
$this->template->set_partial('sidebar', 'layouts/sidebar');
$this->data['title'] = "Create Post";
$this->template->build('create', $this->data);
Run Code Online (Sandbox Code Playgroud)
我想坚持使用MVC模式,所以我不想在侧边栏视图中放置逻辑,这是我现在唯一能想到的.
HMVC是我应该用的吗?
如何告诉侧边栏显示哪些小部件?
我在CodeIgniter 2.1中收到以下错误消息:
A PHP Error was encountered
Severity: Notice
Message: Array to string conversion
Filename: database/DB_active_rec.php
Line Number: 1407
Run Code Online (Sandbox Code Playgroud)
我正在尝试更新数据库中的字段.我有这个代码,每个教程对于批量上传都是一样的.无论如何它仍然有效但事情是它显示这样的错误.
这就是我在我的模型中所拥有的:
function update2($data){
$this->db->update_batch('users',$data, "id");
}
Run Code Online (Sandbox Code Playgroud)
这就是我在我的控制器中所拥有的:
public function updateValues(){
$this->load->model('get_db');
$newRow = array(
array(
'id' => '3',
'firstname' => 'Rapphie'
),
array(
'id' => '2',
'firstname' => 'Charmie'
)
);
$this->get_db->update2($newRow);
echo "it has been updated";
}
Run Code Online (Sandbox Code Playgroud) 我的一个CodeIgniter Controller函数需要调用递归函数作为其功能的一部分.如果我将它放在控制器类中,函数调用会产生阻塞,如果我把它放在类之外,它就无法访问数据库函数($this->db->get()).将其作为辅助功能可以解决这个问题吗?
我要查询的东西,有一个WHERE条件>=和=<但我有没有运气.这是在CODEIGNITER中.
这是mysql查询中的自然方式:
SELECT COUNT(payment.keyid) AS rec_count, `product_key`.`client_name`,
`product_key`.`contact_email`, `product_key`.`status`, `product_key`.`id`,
`payment`.`paymentdate`, (payment.id) as pid, `payment`.`subscription_type`
FROM (`product_key`)
LEFT OUTER JOIN `payment` ON `payment`.`keyid`=`product_key`.`id`
WHERE `payment`.`paymentdate` >= '2013-08-01'
AND `payment`.`paymentdate` =< '2013-08-31'
AND `status` = 'purchased'
GROUP BY `product_key`.`id`
ORDER BY `client_name` asc
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有的:
return $this->db
->select('COUNT(payment.keyid) AS rec_count')
->select('product_key.client_name, product_key.contact_email, product_key.status, product_key.id, payment.paymentdate, (payment.id) as pid,payment.subscription_type')
->from('product_key')
->where('payment.paymentdate >=', $month_start)
->where('payment.paymentdate =<', $month_end)
->where('status', 'purchased')
->join('payment', 'payment.keyid=product_key.id', 'left outer')
->order_by('client_name', "asc")
->group_by('product_key.id')
->get()
->result(); …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现Dashboard widget类(在这里找到:http://harpanet.com/programming/php/codeigniter/dashboard/index#installation)但是它给了我错误Unable to load the requested class
我试图在自动加载和手动添加这个类到我的控制器,$this->load->library('dash')但这也给出了同样的错误.
我检查过dash.php并找到了以下方法,private function __example__()但无法理解开发人员在评论中所说的内容.
class Dash
{
private function __example__()
{
/*
* This function is purely to show an example of a dashboard method to place
* within your own controller.
*/
// load third_party hArpanet dashboard library
$this->load->add_package_path(APPPATH.'third_party/hArpanet/hDash/');
$dash =& $this->load->library('dash');
$this->load->remove_package_path(APPPATH.'third_party/hArpanet/hDash/');
// configure dashboard widgets - format: type, src, title, cols, alt (for images)
$dash->widgets = array(
array('type'=>'oop', 'src'=>'test_dash', …Run Code Online (Sandbox Code Playgroud) 我想从我的codeigniter URL中删除index.php.我有一个带有codeigniter和ion auth的apache24.我能让这个工作的唯一方法是允许AllowOverride All.
相关代码是:
<Directory "c:/Apache24/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)
使用AllowOverride None它会返回404错误代码.使用AllowOverride All它有效.
在生产服务器上有什么安全隐患?
codeigniter ×10
php ×7
mysql ×2
sql ×2
.htaccess ×1
activerecord ×1
apache ×1
controller ×1
database ×1
helper ×1
hmvc ×1
httpd.conf ×1
json ×1
orm ×1
php-5.3 ×1
recursion ×1