我最近升级到OSX Mavericks,从那时起,我开始在我的开发机器上得到上述错误.代码中没有明显的问题(它是一个自动生成的Yii示例应用程序).作为升级到小牛队的一部分发生的事情是:
从那时起,我在加载和重新加载网站几次之后就遇到了这个问题.发生此错误后,我的Web服务器将继续为localhost上托管的任何其他应用程序返回相同的错误.我必须提到静态网页服务很好.
我见过几个线程关于这一主题.大多数人都指出代码中的问题是文件句柄未正确关闭,从而超过了打开文件限制阈值.我也发现这个线程似乎暗示这可能是一个zend调试器问题.还有针对php 5.2.x提交的错误报告.在这里的帖子之后,我尝试了以下内容:
$ ulimit -a
Run Code Online (Sandbox Code Playgroud)
报道:
open files (-n) 256
Run Code Online (Sandbox Code Playgroud)
也,
sysctl -a | grep files
Run Code Online (Sandbox Code Playgroud)
回报,
kern.maxfiles = 12288
kern.maxfilesperproc = 10240
kern.maxfiles: 12288
kern.maxfilesperproc: 10240
kern.num_files: 3248
Run Code Online (Sandbox Code Playgroud)
另一个有趣的线程建议使用以下方法提高此限制(目前为256):
ulimit -n 1024
Run Code Online (Sandbox Code Playgroud)
我已经尝试了一切,但似乎没有任何工作.问题也不能始终如一地重现.
我想知道使用ulimit -n 1024是否会影响apache,因为从我读过的内容来看,它会影响shell可以打开的文件数量.
任何帮助表示赞赏.
编辑:
apache有一点帮助,直到再次遇到错误.如何将此sql转换为活动记录查询
SELECT * FROM `base_twitter` WHERE id NOT IN (SELECT base_id from base_followers)
Run Code Online (Sandbox Code Playgroud) 我目前正在为我的新项目建立一个开发环境,我正在考虑一件事.我打算使用Yii.我希望自动化功能测试,我已经有了gerrit和Jenkins,工作.
我读了这篇文章,发现selenium有类似html套件的东西.我之前从未听说过,我总是编写我的测试来通过PHPUnit运行.我使用了这里描述的默认Yii功能测试环境.
所以我的问题是,这两种方法的优点和缺点是什么?我已经可以想到一个html套件的pro和con.Pro是,编写测试非常简单 - 只需在Selenium IDE中"单击"它们即可.问题是,我可能不得不在测试之前运行数据库固件,我无法更改它们,或运行它们 - 加载夹具,运行测试,加载夹具,运行测试,但我想这将使测试更多更模糊.您如何看待/您在这方面的经历是什么?
我是android开发的新手.我正在android studio用于开发应用程序.我做过的事情
DB包含两个表的表MySQL.api's为两者GET和POST方法创建了两个单独的.api's我现在取得的成就
GET获得GET数据api.POST使用POST 进行数据处理api我现在要做什么
我希望我的api在线发布,即我想将我的服务部署到服务器并访问它们.此时,我能够在服务器上部署服务并访问它们.
现在我希望我的服务(api's)得到保护.为此我搜索了很多文章并找到了两种方法.
yii框架.有人告诉我使用它,因为它自动保护了api's.但我不确定它是否成功.api's至于点1,框架将是有用的,但它对我来说是新的,它需要时间与它合作,因为我已经创建了Web服务.
为了点2我得到了一些信息
两个链接似乎都很好,但链接1并没有给我很多信息.
显然我想要保护我的两个 api's
现在是代码部分
GET_DATA.php
require_once ('config.php');
$sql = "SELECT * FROM users";
$r = mysqli_query($con,$sql);
$result = array();
while($row = mysqli_fetch_array($r)){
array_push($result,array(
'Id'=>$row['Id'],
'Name'=>$row['Name']
));}
Run Code Online (Sandbox Code Playgroud)
echo json_encode(array('users'=> $ result)); …
我需要从数据库中获取几个学生,并将其主键放在以逗号分隔的字符串中.
通常使用SQL会是这样的:
$cleanedStudentIdStringList = "1,2,3,4";
SELECT * FROM Student WHERE id IN ($cleanedStudentIdStringList)
Run Code Online (Sandbox Code Playgroud)
Yii的ActiveRecord似乎在生成的SQL语句中围绕绑定参数插入单引号,这会导致查询在使用参数绑定时失败.
这有效,但不使用安全参数绑定.
$students = Student::model()->findAll("id IN ({$_POST['studentIds']})");
Run Code Online (Sandbox Code Playgroud)
有没有办法仍然使用参数绑定并在单个查询中只获取几行?
所以我正在摆弄Yii框架,在其中一个视图中,特别是创建表单,我试图给我的一个文本字段一个默认值.因此,当我进入我的创建页面时,值已经预先加载到表单上.
这是我目前的代码
<div class="row">
<?php echo $form->labelEx($model,'teamlead'); ?>
<?php echo $form->textField($model,'teamlead',array('size'=>50,'maxlength'=>50,'value'=>Yii::app()->user->getUsername(),'disabled'=>'disabled')); ?>
<?php echo $form->error($model,'teamlead'); ?>
</div>
Run Code Online (Sandbox Code Playgroud)
当我按下创建时,Yii给我一个错误,告诉我textField有空?除了设置值之外,我不知道还能做什么.我还想设置模型属性吗?
我刚刚开始使用YII并设法完成我的第一个应用程序.不幸的是,发布日已经结束,我希望这个应用程序超级快.到目前为止,我遇到的加速它的唯一方法是标准缓存.还有哪些方法可以加快我的应用程序?
我开发了一个用户批量上传模块.有两种情况,当我在数据库没有记录时批量上传20 000条记录.它需要大约5个小时.但是当数据库已经有大约30 000条记录时,上传速度非常慢.上传20 000条记录大约需要11个小时.我只是通过fgetcsv方法读取CSV文件.
if (($handle = fopen($filePath, "r")) !== FALSE) {
while (($peopleData = fgetcsv($handle, 10240, ",")) !== FALSE) {
if (count($peopleData) == $fieldsCount) {
//inside i check if user already exist (firstName & lastName & DOB)
//if not, i check if email exist. if exist, update the records.
//other wise insert a new record.
}}}
Run Code Online (Sandbox Code Playgroud)
以下是运行的查询.(我正在使用Yii框架)
SELECT *
FROM `AdvanceBulkInsert` `t`
WHERE renameSource='24851_bulk_people_2016-02-25_LE CARVALHO 1.zip.csv'
LIMIT 1
SELECT cf.*, ctyp.typeName, cfv.id as customId, cfv.customFieldId,
cfv.relatedId, cfv.fieldValue, …Run Code Online (Sandbox Code Playgroud) 在我的应用程序,我ApiController用actionUsers,所以在YII的路径变得api/users.现在为了获得某些用户信息,我使用以下路径api/users/id/10,其中10是userID,id路径的一部分基本上是GET参数(api/users?id=10).
有没有办法在没有id路径的情况下做同样的事情,即我希望我的路径看起来像api/users/10?
谢谢!
在Yii2中,您可以使用\ yii\web\User类中的identityInterface对象访问当前用户的标识界面,使用类似这样的内容
\Yii::$app->user->identity->id;
Run Code Online (Sandbox Code Playgroud)
有没有办法获取和设置其他参数(不扩展标识类)?
基本上相当于Yii 1.x getState(),以及存储和检索会话信息的setState()方法CWebUser
Yii::app()->user->setState("some_attribute",$value);
Yii::app()->user->getState('some_attribute',$defaultValue);
Run Code Online (Sandbox Code Playgroud)