禁用交易有什么意义? http://ellislab.com/codeigniter/user-guide/database/transactions.html
$this->db->trans_off()
Run Code Online (Sandbox Code Playgroud)
我看不出用法.是用于测试目的吗?
"当禁用事务时,您的查询将自动提交,就像在没有事务的情况下运行查询时一样."
我有一个表user,其中存在一个列nameOfUser.nameOfUser2-列不不存在.
TEST1 此代码将尝试使用正常事务执行2次插入:
$this->db->trans_start();
$this->db->insert('user', array('nameOfUser' => 'testCVVCOOL'));
$this->db->insert('user', array('nameOfUser2' => 'test2'));
$this->db->trans_complete();
Run Code Online (Sandbox Code Playgroud)
但它被回滚(没有插入任何内容),因为nameOfUser2第二个插入中不存在列列.
TEST2 此代码将尝试在禁用事务的情况下执行2次插入
$this->db->trans_off();
$this->db->trans_start();
$this->db->insert('user', array('nameOfUser' => 'testCVVCOOL'));
$this->db->insert('user', array('nameOfUser2' => 'test2'));
$this->db->trans_complete();
Run Code Online (Sandbox Code Playgroud)
上面会将testCVVCOOL字符串插入-table,user即使第二个插入中有错误($this->db->insert('user', array('nameOfUser2' => 'test2'));)
您何时需要以这种方式禁用交易?
我按照Phil的Sturgeon 示例创建了两个控制器,Public_Controller和./application/libraries文件夹中的Admin_Controller .
我想要做的是特定地自动加载Public_Controller和Admin_Controller,所以我在./application/config.php中创建了这个自动加载功能.
function __autoload($class) {
// Autoload only Public_Controller and Admin_Controller
if (strpos($class, 'CI_') !== 0) {
$file = APPPATH . 'libraries/'. $class .'.php';
if ( file_exists($file) && is_file($file) ) {
@include_once($file);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这个问题是我有更多的文件包含在库文件夹中,所以那些也是自动加载的,这不是我想要的.所以我尝试对第一个if语句进行一些小改动,如下所示:
if ( in_array($class, array('Public_Controller, Admin_Controller')) ) // instead of strpos
Run Code Online (Sandbox Code Playgroud)
为了只针对这两个类,但这似乎不起作用.我可能做错了什么想法?
$all_categories = get_cats($cat);
echo "  "."Sons";
for ($i=0;$i<sizeof($all_categories);$i++) {
$arr = get_gender($cat);
if ($arr[$i]=='0') {
echo "  ".$all_categories[$i].",";
}
}
echo "  "."Daughters";
for ($i=0;$i<sizeof($all_categories);$i++) {
$arr = get_gender($cat);
if ($arr[$i]=='1') {
echo "  ".$all_categories[$i].",";
}
}
Run Code Online (Sandbox Code Playgroud)
在$all_categories我得到一个给定身份的所有孩子,get_cats并且get_gender是功能.
0适合男性,1适合女性.我想首先显示"儿子"这个词然后再显示他们的名字,然后再计算儿子的数量,然后再写上"女儿"及其名字和女儿的数量.
现在我正在显示"儿子"这个词然后他们的名字,然后是"女儿"和他们的名字,但"儿子"和"女儿"这两个词正在显示,即使给定的身份证没有孩子.
我在使用Drop Downs时遇到了一个问题.我试图使用这个 http://www.grocerycrud.com/forums/topic/1087-updated-24112012-dependent-dropdown-library/
但实际上我的要求是完全不同的.我有一个表fwld_products,其中我正在添加所有其他表的类别
fwld_cat_main(主要类别的ID),
fwld_cat_sub1(sub1类别的id)
fwld_cat_sub2(sub2类别的id)
fwld_cat_sub3(sub3类别的id)
我希望以这种方式显示下拉,当用户选择主类别时,下拉显示(sub1)具有与主类别相关的数据,当选择sub1时下拉显示(sub2)显示与sub1相关的数据,并且sub2选择并删除down(sub3)显示与下拉(sub2)相关的数据.
当提交Finnally数据时插入[fwld_products].
这里我附上了ERD,结果也是如此.

请帮忙
我和一位朋友刚刚开始参与一个项目,其他人几年前就停止了开发,我们正试图复活它.我们已经解决了大多数与设置相关的问题,但是我们无法弄清楚这是一个非常烦人的问题.
在我们的本地主机中,所有页面都需要很多时间来加载/刷新.我不是指资产,脚本或任何东西,问题是在第一个请求完成之前的延迟.大多数情况下需要15到30秒,这是不可接受的,有时甚至会达到1或2分钟.
例如,这是Chrome开发工具中"网络"标签的屏幕截图.第一行是视图,其他是资产.

我们用谷歌搜索了几个小时,尝试了一些不同的东西,但没有一个有效.像这样的一些解决方案指向一些Apache的httpd.conf设置,但我放弃了,因为我使用相同的服务器用于其他项目,这从未发生过(无论如何我试过了,但是没有用).其他人指出PHP版本冲突,所以我尝试将我的MAMP中的PHP从5.4.10更改为5.2.17(该项目需要5.2.3+),但这似乎也不起作用.
除了我的MAMP安装,我们还在带有WAMP(PHP5.5)的Windows机器上测试了它,并且在另一台带有干净MAMP(PHP5.5)的Mac上进行了测试,在这两种环境中都会发生同样的事情.所以,我们现在想知道问题是否可能出现在CodeIgniter本身(这听起来不太可能)或某些项目配置中,但我们对CodeIgniter(也不是PHP专家)都是新手,并且找不到任何东西.
哦,我们也尝试联系原始的开发人员,但是他们说这是两年前,听起来他们不愿意提供帮助.我真的希望他们在开发这个项目的时候没有这个问题,因为在30秒的加载时间内工作它只是疯了.
有人有任何想法或了解我们可以尝试找到问题的更多内容吗?如果需要,我可以发布一些代码.
更新:我刚刚发现这个未解决的问题,其中用户遇到了与Laravel类似的问题,但有时只是.正如我所说,在我的情况下,这种情况总是发生,延迟时间从大约10秒到几分钟.
更新2:正如Wrikken所建议的,我通过xdebug探查器运行它,但我不确定如何解释结果以查看问题所在.我用PHPStorm的"Analyze Xdebug Profiler"工具打开了一个快照,并按照每个调用中使用的时间对其进行了排序.以下是一些截图:

并按自己的时间排序:

这CashewModel显示一些排队是某种自定义库由以前的开发者,这也是造成我们已经解决了一些问题建.我希望问题不会隐藏在那里,因为我不知道大多数自定义代码是如何工作的.
有任何想法吗?同样,我可以根据需要发布代码.
更新3:深入研究代码,MY_Controller在上面的屏幕截图中,以前的开发人员创建了一些扩展的自定义控制器CI_Controller.我刚刚发现他们将所有腰果代码推送到GitHub,这是MY_Controller文件.
我还会在这里粘贴第467行的所有相关代码(在GitHub的版本中是464),它涉及_remap内部的功能,CashewController并且是探查器说所有时间花费的地方.我将一些评论和名称翻译成英文.
/**
*
* Extension of the default controller, adding support for templates
*
* Usage example:
*
* class Dummy extends EC_Controller
* {
* public function index()
* {
* $this->add_section('id_in_template', 'page_name');
* $this->render_page(); // Renders the default …Run Code Online (Sandbox Code Playgroud) 在Code_gniter的Fast-cgi环境中遇到mod_rewrite问题.我的.htaccess看起来像这样:
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\\.php|images|css|js|robots\\.txt|favicon\\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?$1 [L]
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误'没有指定输入文件'.
我换了
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.* - [L]
RewriteCond $1 !^(index\.php|images|robots\.txt)
#RewriteRule ^(.*)$ /index.php?/$1 [QSA,L]
<IfModule mod_php5.c>
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
<IfModule !mod_php5.c>
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
它也适用于这个:
#RewriteRule ^(.*)$ /index.php?/$1 [QSA,L]
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我从$ config ['index_page'] ='index.php'更改配置文件application/config/config.php,我仍然在URL上有index.php; to $ config ['index_page'] =''; 我有一个不同的错误.
我做错了什么?
我需要将Oauth设置为我将要开发的PHP项目的一部分.
为此,我跑了;
sudo pecl install oauth
Run Code Online (Sandbox Code Playgroud)
这完成了OK,它指示我添加extension=oauth.so到我的php.ini文件中,我做了.
然后我重新启动Apache并运行
php -i | grep oauth
Run Code Online (Sandbox Code Playgroud)
要查看它是否被PHP拾取,它似乎就像我得到的结果一样;
source version => $Id: oauth.c 325799 2012-05-24 21:07:51Z jawed $
Run Code Online (Sandbox Code Playgroud)
但是当我运行(CodeIgniter)应用程序时,我得到错误;
Fatal error: Class 'Oauth' not found in...
Run Code Online (Sandbox Code Playgroud)
我错过了一个至关重要的步骤吗?
好吧,我试图弄清楚如何使用insert_batch
我正在尝试这样的事情
function checkboxes($data,$category)
{
$insert=array(
'story'=>$data
'category'=>$category
);
$this->db->insert_batch('stories_to_categories',$insert);
}
Run Code Online (Sandbox Code Playgroud)
对于$ data我有数组,可以有值和键的范围
(
[0] => 1
[1] => 6
[2] => 14
[3] => 15
[4] => 18
)
Run Code Online (Sandbox Code Playgroud)
对于类别,我将只有一个值,例如2
我尝试达到我的习惯
story category
------------------------
1 2
6 2
14 2
15 2
18 2
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我,我很痛苦!
我正在尝试使用jQuery和ajax函数上传图像,如何获取图像文件的所有细节,就像我们使用的php一样 $_FILE()
这是我的代码
JS
$("#uploadimg" ).click(function() {
$( "#file" ).click();
});
$( "#file" ).change(function(e) {
var file=$('#file').val();
alert(file);
die();
e.preventDefault();
$.ajax({
url:'http://localhost/JSG/blog/uploadimg',
secureuri:false,
type: "POST",
fileElementId:'image',
dataType: 'text',
data:{ file: file },
cache: true,
success: function (data){
alert(data);
console.log(data);
},
});
});
Run Code Online (Sandbox Code Playgroud)
调节器
public function uploadimg()
{
$var = $_POST['file'];
print_r($var);
if($this->input->post('file')) {
$config['upload_path'] = 'upload';
$config['file_name'] = $var;
$config['overwrite'] = 'TRUE';
$config["allowed_types"] = 'jpg|jpeg|png|gif';
$config["max_size"] = '1024';
$config["max_width"] = '400';
$config["max_height"] = '400';
$this->load->library('upload', $config);
if(!$this->upload->do_upload()) {
$this->data['error'] = …Run Code Online (Sandbox Code Playgroud) 我有要求,我可以在新的添加功能中进行唯一值的验证
$this->form_validation->set_rules('email','Email','required|valid_email||is_unique[users.Email]');
Run Code Online (Sandbox Code Playgroud)
它的工作,但在编辑功能,它不工作..我有写回调函数来检查唯一的电子邮件.这是我在编辑功能中编写的代码
$this->form_validation->set_rules('email','Email','required|valid_email|callback_check_email');
function check_username($email)
{
$return_value = $this->user_model->check_email($email);
if ($return_value)
{
$this->form_validation->set_message('email_check', 'Sorry, This username is already used by another user please select another one');
return FALSE;
}
else
{
return TRUE;
}
}
Run Code Online (Sandbox Code Playgroud)
和user_model
function check_mail($email)
{
$sql = "SELECT users.Email
FROM users
WHERE
$email = users.Email
";
$result = $this->db->query($sql)->result_array();
return $result;
}
Run Code Online (Sandbox Code Playgroud)
我无法验证唯一的电子邮件
codeigniter ×10
php ×8
mysql ×2
.htaccess ×1
activerecord ×1
ajax ×1
apache ×1
autoload ×1
fastcgi ×1
grocery-crud ×1
jquery ×1
mamp ×1
oauth ×1
pecl ×1
sql ×1
transactions ×1