可能重复:
错误:获取非对象的属性
我是codeigniter模型的新手,我尝试按照文档中的步骤加载在我的数据库中注册的所有用户.
这是我的模特: user.php
class User extends Model {
function user() {
parent::Model();
}
function alluser() {
$query = $this->db->query("select * from user limit 0,5"); //Line 30 error as in my IDE located in this line
return $query->result();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的控制器: home.php
class home extends Controller {
function index() {
parent::Controller();
}
function alluser() {
$this->load->model('User');
$result = $this->User->showusers();
if ($result->num_rows()>0) {
foreach ($result as $row) {
echo "ID:".$row->userid." ".$row->userpenname."<br />";
echo $row->userfirstname." ".$row->userlastname."<br />";
}
}
}
} …Run Code Online (Sandbox Code Playgroud) 我开始用PHP编写一些应用程序,我对这门语言越来越熟悉了.有人告诉我有关CakePHP和CodeIgniter的信息.我想更好地了解这些如何帮助我,以及是否值得花时间学习框架?
例如,我想转换这个;
$this->db->get('table');
Run Code Online (Sandbox Code Playgroud)
对此;
'SELECT * FROM table'
Run Code Online (Sandbox Code Playgroud)
这有什么功能吗?我搜索了CI的用户指南,但没有找到任何解决方案.
我使用CodeIgniter 1.7开发了一个照片共享社区网站.成员上传的照片会自动调整为多种格式,我使用CodeIgniter Image Manipulation类.该类内置于框架中,基本上是多个图像处理库的包装器,如GD,GD2,ImageMagick和NETPBM.在我的主机上,我只能使用GD2,所以这就是这个问题的所在.
关于我的问题.以下是我网站上已调整大小的照片示例.请注意,原件非常大,宽度超过3000像素:
http://www.jungledragon.com/image/195/female_impala_close-up.html
现在,看看同样的图像,也调整大小,在Flickr上稍大一些:
http://www.flickr.com/photos/fledder/3763538865/in/set-72157621744113979
看到戏剧性的差异?我正试图弥合这个巨大的差距.我做的第一件事是对图像应用锐化滤镜.你可以在这里看到结果:

虽然仍然不完美,但它至少接近Flickr图像的清晰度水平.剩下的问题是颜色被冲走,好像它们的饱和度降低了.这种情况发生在锐化滤镜之前,因此它必须在GD2中.
这个问题对我来说至关重要,但我不知道在哪里看.我发现一些.NET线程正在谈论色度子采样,但我不知道在我的设置中如何处理这些信息.我正在寻找在我的设置约束下工作的任何解决方案.
更新:这里是原始文件,就像我将它上传到我的网站和Flickr一样:
http://www.jungledragon.com/img/DSC07275.jpg
更新2:我很震惊.好的方式.安装ImageMagick但是在切换到它之后花了很多痛苦(这是将'imagemagick'设置为Code Igniter图像处理类使用的库的问题,测试图像的结果如下:

ImageMagick的调整大小正是按预期完成的.颜色被保留,清晰度就在那里.是的,我禁用了自定义锐化程序,因为ImageMagick不再需要它.最重要的是,这个过程更快,内存也更少.这里有另一个很大的部分:我无法解释它,但我绝对没有告诉ImageMagick使用特定的颜色配置文件,这是由用户@Alix建议的.到目前为止,在我的测试中,无论是否有嵌入的配置文件,都可以看到颜色信息.输出只是输入的较小版本.ImageMagick真的那么聪明还是我在做梦?
在一个场景中,我需要知道查询将返回的记录集的计数,这在codeigniter中可以通过$query->num_rows()或完成$this->db->count_all_results().哪一个更好,这两者有什么区别?
我需要jos_users从外部php脚本[codeignitor] 访问joomla用户表以进行登录检查.
joomla存储这样的密码
4e9e4bcc5752d6f939aedb42408fd3aa:0vURRbyY8Ea0tlvnTFn7xcKpjTFyn0YT
Run Code Online (Sandbox Code Playgroud)
看起来这不是正常的MD5,所以我无法使用md5(password).
创建密码的可能方法是什么?
谢谢.
我在根目录中创建了一个用户文件夹.
我的项目基础路径是:
/var/www/myproject/
Run Code Online (Sandbox Code Playgroud)
当我想从控制器访问基本路径BASEPATH时,它显示:
/var/www/myproject/system/
Run Code Online (Sandbox Code Playgroud)
但我想要的道路是:
/var/www/myproject/
Run Code Online (Sandbox Code Playgroud)
我是CodeIgniter的新手.我该如何设置此路径?
如何判断MySQL UPDATE成功与实际更新的数据?
例:
TABLE
id city_name
1 Union
2 Marthasville
Run Code Online (Sandbox Code Playgroud)
如果我运行以下内容:
$data = array('city_name', 'Marthasville');
//update record 2 from Marthasville to the same thing, Marthasville.
$this->db->where('id', 2);
$this->db->update('table', $data);
if($this->db->affected_rows() > 0)
{
//I need it to return TRUE when the MySQL was successful even if nothing was actually updated.
return TRUE;
}else{
return FALSE;
}
Run Code Online (Sandbox Code Playgroud)
这将在TRUE每次UPDATE语句成功时返回,但在没有实际更新行时返回FALSE.
TRUE每次成功执行UPDATE语句时,我都需要它返回,即使它实际上没有更改任何记录.
我正在使用Codeigniter交易
$this->db->trans_start();
$this->db->query('AN SQL QUERY...');
$this->db->trans_complete();
Run Code Online (Sandbox Code Playgroud)
这工作得很好,我有问题是内部的trans_start和trans_complete我打电话等功能,这些功能与数据库交易,使他们包含插入和更新以及一些删除...例如:
$this->db->trans_start();
$this->utils->insert_function($data);
$this->utils->update_function2($test);
$this->db->trans_complete();
Run Code Online (Sandbox Code Playgroud)
现在,如果执行这些函数并且发生一些错误,CodeIgniter将不会执行回滚.
处理此类问题的最佳方法是什么?
我想到的唯一解决方案是从这些函数返回错误并在那些函数内添加(trans_stat和trans_complete)如果它返回错误测试则执行$this->db->trans_rollback
例如:
$this->db->trans_start();
$result = $this->utils->insert_function($data);
if($result === false){
$this->db->trans_rollback();
}
$this->db->trans_complete();
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?
更新1:
根据要求我正在调用的外部函数示例:
// insert_function contains
$rec = array(
'numero' => $numero,
'transaction_id' => $id,
'debit' => $product_taxes['amount_without_taxes'],
'date' => $data['date_transaction'],
);
$this->addExerciceAccountingRecords($rec);
and addExerciceAccountingRecords contains
function addExerciceAccountingRecords($records) {
$this->db->insert('transactions_exercices', $records);
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试在上传时添加时间作为图像名称的前缀以及原始名称,但我无法弄明白.请帮我使用以下代码在上传时为我的原始文件名添加前缀.
<?php
class Upload extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->helper(array('form', 'url'));
}
function index()
{
$this->load->view('upload_form', array('error' => ' ' ));
}
function do_upload()
{
$config['upload_path'] = 'Public/uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '1024';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload())
{
$error = array('error' => $this->upload->display_errors());
$this->load->view('upload_form', $error);
}
else
{
$data = array('upload_data' => $this->upload->data());
$this->load->view('upload_success', $data);
}
}
}
?>
Run Code Online (Sandbox Code Playgroud) codeigniter ×10
php ×9
mysql ×2
activerecord ×1
cakephp ×1
file-upload ×1
gd2 ×1
joomla ×1
md5 ×1
sql-update ×1
transactions ×1