草庐IT

php - Yii INSERT ... 重复更新

我正在做一个Yii项目。在Yii模型上执行save()时如何使用MySQL(http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html)的ONDUPLICATE功能?我的MySQL如下:CREATETABLE`ck_space_calendar_cache`(`space_id`int(11)NOTNULL,`day`dateNOTNULL,`available`tinyint(1)unsignedNOTNULLDEFAULT'0',`price`decimal(12,2)DEFAULTNULL,`offer`varc

php - 在 Yii 中更新查询

我在Yii中有一个要求,我必须根据某些条件更新一个表。我必须使用new_val=previous_value+new_val更新该列。但是代码没有按预期工作。我试过的代码是$update=Yii::app()->db->createCommand()->update('tbl_post',array('star'=>('star'+1),'total'=>('total'+$ratingAjax)),'id=:id',array(':id'=>$post_id));在正常查询中,查询将是UPDATEtbl_postsetstar=star+1,total=total+'$ratingA

mysql - Yii2 按最大日期选择?

假设我在yii2中有表A及其事件记录,将具有最大创建日期的记录加载到模型的最佳方法是什么。这是查询:select*fromAwherecreated_date=(selectmax(created_date)fromA)现在我首先获取最大日期,然后在另一个数据库访问中使用它,即:$max=A::find()->select("created_date)")->max();$model=A::find()->where("created_date=:date",[":date"=>$max])->one();我确信这可以通过一次访问数据库来完成,但我不知道如何做。请帮忙。

php - SQLSTATE[HY000] [2002] yii2 中没有那个文件或目录

我使用ubuntu16.04。PHP版本7.0.4-7ubuntu2。Apache/2.4.18(Ubuntu).PHP扩展名:mysqli(在phpmyadmin中编写)。我将我的ubuntu从15.10升级到16.04并且我有这个错误:我的项目在我的服务器中正确运行,但我无法在我的操作系统中运行:DatabaseException–yii\db\ExceptionSQLSTATE[HY000][2002]Nosuchfileordirectory↵Causedby:PDOExceptionSQLSTATE[HY000][2002]Nosuchfileordirectoryin/va

php - 在 Yii2 中使用 MySQL "IN"语法绑定(bind)参数的正确方法?

好的,我正在使用Yii2并且我熟悉在使用mysql查询时准备/绑定(bind)数据,例如:$sql=$this->db->createCommand("UPDATEsome_tableSETsomething='foo'WHEREsome_id=:some_id");$sql->bindValue(':some_id',$some_id);但是当值可能包含多个值时,例如使用MySQL语法IN时怎么办?例如:$sql=$this->db->createCommand("UPDATEsome_tableSETsomething='foo'WHEREsome_idIN(:parents)")

mysql - 带有限制和分页的 yii CActiveDataProvider

我正在尝试从表中选择几行并将其呈现在多个页面中(分页)。这是模型中的一段代码:returnnewCActiveDataProvider('Downloads',array('criteria'=>array('select'=>'download_id,title,thumb_ext','order'=>'download_idDESC','limit'=>$count,),'pagination'=>array('pageSize'=>5,),));在View中我使用CGridView显示它:$this->widget('zii.widgets.grid.CGridView',arr

php - yii2 : make checkbox to be checked

我正在使用Yii2框架,我想生成这样的html代码在使用ActiveForm的View中。我试过了echo$form->field($model,'order')->checkBox(['label'=>...,'uncheck'=>null,'checked'=>true]);还有echo$form->field($model,'order')->checkBox(['label'=>...,'uncheck'=>null,'checked'=>'checked']);但是生成的html代码中没有出现所需的字符串“checked”。奇怪的是,如果我用“selected”替换“chec

php - 如何预选/检查 yii2 RadioList() 中的默认单选按钮?

我想在我的表单中预选单选按钮。field($model,'config')->radioList(['1'=>'AutomaticEntry',2=>'ManualEntry'])->label('Barcode/BookNoGeneration');?> 最佳答案 预选值取自$model->config。这意味着您应该将该属性设置为您想要预选的值:$model->config='1';$form->field($model,'config')->radioList(['1'=>'AutomaticEntry','2'=>'Manu

php - Yii2 redis 缓存超过文件缓存

我正在使用带有文件缓存和redis缓存的yii2。在我的主配置文件中定义了redis缓存设置。'redis'=>['class'=>'yii\redis\Connection','hostname'=>'MY_IP','port'=>MY_PORT,'database'=>0,],我还在文件缓存设置下添加了一个组件。'cache'=>['class'=>'yii\caching\FileCache',],所以对于缓存,我使用$cache=Yii::$app->cache;并设置缓存Yii::$app->cache->set($id,$value,$time);并使用Yii::$app-

database - Yii2 + Redis 作为数据库

我想使用Yii2和redis作为数据库。到目前为止,我从这里得到了Yii2的RedisActiveRecord类。link1link2但是,我遇到了一个问题。为什么这个类在REDIS中添加任何东西作为哈希????在上面我无法找到它插入数据的模式。我添加一个用户,它将在user:xxx命名空间下添加一个用户,在s:user:xxx下添加另一条记录,依此类推,但没有一个主题有任何字段,我在属性中定义!仅包含ID。我知道Key-value类型的数据库和RDBMS是不同的,也知道在Redis中如何实现像记录这样的关系,但我不知道为什么它只保存ID。到目前为止,我找不到任何使用redisActi