草庐IT

php - 使用 updateAll() 使用同一个表的另一个列值更新表列

我有一个表,其中包含这两个真实字段current和origin。current值定期更新。我想写一个重置脚本:对于每一行,我想将origin值放在current值中。在MySQL中,这个查询是可能的:updateMyTablesetcurrent=origin我尝试在Yii2中使用查询构建器编写这个:return$this->updateAll(['current'=>'origin']);但这不起作用,因为origin被解释为字符串并且所有行都更新为值0。那么如何使用updateAll()将另一个字段的值更新为字段值? 最佳答案

php - 如何在 Yii 框架中使用 mysql_escape_string()?

众所周知,我们不能在Yii等框架中使用原始MySQL查询。我想在我在Yii框架中运行的项目中使用mysql_escape_string来避免用户输入中的SQL注入(inject)。我知道mysql_escape_string在PHP5.5中已弃用,我有一个PDO替代方案。Yii框架中的替代方案以及mysql_escape_string()的PDO方式是什么? 最佳答案 PDO中mysql_escape_string的替代方法是使用准备好的语句。例如在Yii中:$user=Yii::app()->db->createCommand()

php - 在 yii 中检索具有条件的 CActiveDataProvider

我从yii开始,在尝试使用条件过滤CActiveDataProvider时遇到了一些麻烦。这是我的数据库模型:TableColumnsProject[id,name,status]userToProject[user_id,project_id,role]User[id,....]我希望index操作显示所有状态为已完成的项目或用户当前分配给该项目的位置。为了测试目的,对用户ID进行硬编码。这是我的代码:$criteria=array('order'=>'statusdesc','with'=>array('userToProject','userToProject.user'=>ar

php - Yii 中的数据库迁移

为了做migrationinYii我用了这条线createTable('{{users}}',array('id'=>'pk','username'=>'VARCHAR(80)NOTNULL','password'=>'VARCHAR(80)NOTNULL','email'=>'VARCHAR(128)NOTNULL','activekey'=>'VARCHAR(128)NOTNULLDEFAULT\'\'','createtime'=>'INTEGER(10)NOTNULLDEFAULT\'0\'','lastvisit'=>'INTEGER(10)NOTNULLDEFAULT\'0

php - Yii2中如何实现mysql记录锁定

我想在我的Yii2应用程序中实现记录锁定功能。如果一个用户打开更新链接/记录(例如http://localhost/myproject/backend/web/user/update/1),那么另一个用户将无法访问此链接,用户将收到一条ALERT消息,内容为“此记录已被其他用户打开”。所以记录/页面应该为另一个用户锁定。(与MSExcel锁定相同)一旦第一个用户完成并离开该记录/页面,它应该解锁,另一个用户可以读取/更新该数据。那么我如何在Yii2事件记录中使用mysql数据库锁定机制或者是否有任何其他方法来实现这一点。如有任何帮助,我们将不胜感激。 最佳答

php - Yii 通过 many_many 关系查找模型

我正在使用Yii并有3个表:用户、设备和users_devices表(user_id、device_id)来定义它们之间的MANY_MANY关系。我正在寻找的是通过ActiveRecord从属于特定用户(users.id)的ID(devices.id)查找设备的最简单方法。场景是RESTAPI正在查询设备,但出于安全原因,我想验证该设备是否归用户所有。想法是这样的:$device=Devices::model()->findByPk($deviceId)->having(array('user_id'=>$userId));在此先感谢您的帮助,我已经对此进行了一段时间的研究,但找不到一

php - 具有复合主键的 Yii 模型

我的MySQL表的主表由两列组成:space_id(INTEGER)和day(DATE)。CREATETABLE`ck_space_calendar_cache`(`space_id`int(11)NOTNULL,`day`dateNOTNULL,`available`tinyint(1)unsignedNOTNULLDEFAULT'0',`price`decimal(12,2)DEFAULTNULL,`offer`varchar(45)DEFAULTNULL,`presale_date`dateDEFAULTNULL,`presale_price`decimal(12,2)DEFAU

php - Yii 中的日期选择器将数据存储为 yy MM d 格式

我有一个表单,其中的输入字段是这样的labelEx($model,'due_date');?>widget('zii.widgets.jui.CJuiDatePicker',array('attribute'=>'due_date','model'=>$model,'options'=>array('mode'=>'focus','dateFormat'=>'dMM,yy','showAnim'=>'slideDown',),'htmlOptions'=>array('size'=>30,'class'=>'date'),));?>error($model,'due_date');?>

php - Yii 多数据库连接

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。我有三个数据库,每个数据库都有相同的表和相同的字段,但我不知道如何在Yii中同时从所有三个数据库中获取所有记录。请帮忙

mysql - Yii2 在一侧添加带有 "%"通配符的 LIKE 条件

我想在一侧添加带有%通配符的like条件,例如:wherenamelike'value%'我的代码:Table::find()->filterWhere(['like','name',$_GET['q'].'%'])->all();但是查询结果是:wherenamelike'%value\%%' 最佳答案 您需要将第四个操作数设置为false才能使用自定义wherelike条件:Table::find()->where(['like','name',$_GET['q'].'%',false]);来自docs:Sometimes,yo